A premium, production-ready full-stack MERN platform for managing medical appointments. Built with an elegant, modern healthcare-themed design and robust backend infrastructure.
- Patient-Centric: Seamless doctor discovery, intuitive booking, and profile management.
- Admin-Powered: Centralized control over doctors, appointments, and system metrics.
- Global Ready: Fully localized support for English and Amharic.
- Production-Grade: Containerized with Docker, secured with JWT and Redis, and optimized for deployment.
- QUICK_START.md — Get running in 5 minutes.
| Module | Description | Setup |
|---|---|---|
| Backend | Node.js/Express API with MongoDB & Redis | View Details |
| Frontend | Patient application (React + Vite) | View Details |
| Admin | Manager Dashboard (React + Vite) | View Details |
The fastest way to experience BookMyDoctor is via Docker Compose:
docker compose up --build -d- Frontend (Patient): http://localhost:5173
- Admin Dashboard: http://localhost:5174
- API Server: http://localhost:4000
- Admin:
admin@hams.com/Admin@123456 - Doctor:
john@hams.com/Doctor@123456 - Patient:
jane@hams.com/Patient@123456
Authentication — Secure JWT + refresh tokens, Redis-backed revocation.
Multi-Role Support — Dedicated flows for Patients, Doctors, and Admins.
Smart Filtering — Advanced doctor discovery by speciality.
Live Booking — Real-time slot availability and conflict prevention.
Localization — Full English & Amharic translations with seamless switching.
Premium UI — Modern, formal hospital-themed color palette with responsive layouts.
DevOps — Containerized architecture ready for scaling.
| Layer | Technologies |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS, TanStack Query, i18next |
| Backend | Node.js, Express, Mongoose, JWT, Zod |
| Database | MongoDB, Redis |
| DevOps | Docker, Nginx, Vercel/Render |


