A modern healthcare booking platform that allows patients to schedule appointments with doctors via form or voice commands. Built using Next.js, Node.js, and MongoDB, with JWT authentication, email confirmations, and AI-powered voice booking.
Live Demo: [medmate.vercel.app](https://med-mate-config.vercel.app/)
MedMate enables patients to book appointments easily through a web interface or AI voice commands (powered by Eleven Labs). Admins and doctors manage availability, appointments, and analytics through role-based dashboards.
- Full control of the system
- Add / edit / delete doctors
- Enable / disable accounts
- View analytics (doctor count, top specializations)
- JWT-protected login
- View & manage own appointments
- Track completed or missed visits
- Manage daily availability slots (30-min blocks)
- Prevent double booking in real-time
- Open access (no login required)
- Browse doctors by specialization, date, or time
- Book appointments via form or voice
- Receive instant email confirmation
- Browse Doctors → Filter by specialization, date, or time
- Book Appointment → Fill form or use voice AI
- Backend Processing → Validates slot and saves data
- Email Confirmation → Sent via Nodemailer / Resend
| Role | Auth Type | Access |
|---|---|---|
| Admin | JWT | Full system |
| Doctor | JWT | Own dashboard |
| Patient | None | Public access |
- Secure JWT tokens (access + refresh)
- Role-protected routes:
/admin/dashboard/doctor/dashboard
- Automated confirmation on booking
- Sent via Nodemailer or Resend API
- Includes appointment details (doctor, date, time)
- Voice-based booking via AI widget
- Collects user details: name, email, time, symptoms
- Sends payload to backend webhook
/book-appointment - Checks slot availability → books or prompts reselect
| Layer | Stack |
|---|---|
| Frontend | Next.js + TypeScript + Tailwind + ShadCN |
| Backend | Node.js + Express.js |
| Database | MongoDB + Mongoose |
| Auth | JWT (access + refresh tokens) |
| Nodemailer / Resend | |
| Voice | Vapi AI |
| Deployment | Vercel (Frontend), Render / Railway (Backend) |
- Responsive full-stack web app
- Role-based dashboards (Admin / Doctor / Patient)
- Voice + form appointment booking
- Email confirmation system
- Secure REST APIs
- Real-time slot management
- Fully deployed (Frontend + Backend)
MedMate is part of a Full-Stack Development Bootcamp final project by Laiba Mushtaq. It demonstrates secure, full-stack development skills, integration of AI voice assistants, and deployment best practices.