- Introduction
- Features
- Technologies Used
- Installation
- Usage
- API Documentation
- Contributing
- License
- Contact
MediLink is an appointment scheduling system designed to streamline the process of booking and managing appointments between patients and healthcare providers. This application is built with Angular 16 and leverages various third-party libraries to provide a seamless and efficient user experience.
- Patient Portal: View available time slots and book appointments.
- Provider Portal: Manage schedules and appointment requests.
- Notifications: Receive email or SMS reminders for upcoming appointments.
- Calendar Integration: Sync appointments with Google Calendar or Outlook.
- Analytics: Track appointment trends and provider availability.
- Front-End: Angular 18, Bootstrap
- Back-End: Node.js, Express.js, MongoDB, Mongoose
- Authentication: Passport.js, JWT
- Notifications: Nodemailer, Twilio
- Calendar Integration: Google Calendar API, Microsoft Graph API
- Real-Time Updates: Socket.io
- Date Management: Date-fns
- Node.js (v18.x or higher)
- Angular CLI (v18.x)
-
Clone the repository:
git clone https://github.com/yourusername/medilink.git cd medilink -
Install dependencies for the client and server:
# For the client cd client npm install # For the server cd ../server npm install
-
Set up environment variables: Create a
.envfile in theserverdirectory and add the following variables:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret EMAIL_SERVICE=your_email_service EMAIL_USER=your_email_user EMAIL_PASS=your_email_password TWILIO_SID=your_twilio_sid TWILIO_AUTH_TOKEN=your_twilio_auth_token TWILIO_PHONE_NUMBER=your_twilio_phone_number GOOGLE_CALENDAR_API_KEY=your_google_calendar_api_key MICROSOFT_GRAPH_API_KEY=your_microsoft_graph_api_key
-
Run the development server:
# Start the client cd client ng serve # Start the server cd ../server npm start
-
Open your browser: Navigate to
http://localhost:4200to see the application in action.
- Patients: Register and log in to view available time slots, book appointments, and receive notifications.
- Providers: Register and log in to manage schedules, approve or decline appointment requests, and sync with external calendars.
POST /api/auth/register: Register a new user.POST /api/auth/login: Log in an existing user.
GET /api/appointments: Get all appointments.POST /api/appointments: Create a new appointment.PUT /api/appointments/:id: Update an existing appointment.DELETE /api/appointments/:id: Delete an appointment.
POST /api/notifications/email: Send an email notification.POST /api/notifications/sms: Send an SMS notification.
POST /api/calendar/google/sync: Sync appointments with Google Calendar.POST /api/calendar/outlook/sync: Sync appointments with Outlook.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Justin Barlowe
Email: justin.barlowe@proton.me
Website: justinbarlowe.com