A comprehensive doctor appointment booking platform built with modern web technologies, featuring Role-Based Access Control (RBAC) and separate interfaces for users, administrators, and doctors.
- Browse and search doctors by speciality
- Book appointments with available doctors
- View and manage personal appointments
- User profile management
- Responsive design for all devices
- Doctor dashboard with appointment overview
- Manage appointment schedules
- Update profile and availability
- View patient appointment history
- Comprehensive admin dashboard
- Add and manage doctors
- View all appointments across the platform
- Manage doctor profiles and specialities
- Platform analytics and insights
- Role-Based Access Control (RBAC) - Secure authentication and authorization
- Multi-panel Architecture - Separate interfaces for different user roles
- Cloud Integration - Image storage with Cloudinary
- Responsive Design - Mobile-first approach
- React.js - User interface library
- Vite - Build tool and development server
- CSS3 - Styling and animations
- Context API - State management
- Node.js - Runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Cloudinary - Image storage and management
- Multer - File upload handling
- JWT - Authentication tokens
- bcrypt - Password hashing
sehajmakkar-doctime/
βββ admin/ # Admin panel (React)
βββ backend/ # Server-side application
βββ frontend/ # User-facing application (React)
backend/
βββ config/ # Database and third-party service configurations
βββ controllers/ # Route handlers for different user roles
βββ middlewares/ # Authentication and authorization middlewares
βββ models/ # Database schemas
βββ routes/ # API route definitions
frontend/ & admin/
βββ src/
β βββ components/ # Reusable UI components
β βββ context/ # State management
β βββ pages/ # Application pages
β βββ assets/ # Static assets
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Create environment variables file (
.env):MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret PORT=5000
-
Start the server:
npm start
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Navigate to the admin directory:
cd admin -
Install dependencies:
npm install
-
Start the development server:
npm run dev
The platform implements Role-Based Access Control with three distinct user roles:
- Users: Can book appointments and manage their profile
- Doctors: Can manage their schedule and view appointments
- Admins: Full platform management capabilities
Each role has dedicated middleware for route protection and access control.
- Personal information
- Authentication credentials
- Appointment history
- Professional information
- Speciality and qualifications
- Availability schedule
- Profile image
- Patient and doctor references
- Appointment date and time
- Status tracking
- Payment information
POST /register- User registrationPOST /login- User authenticationGET /profile- Get user profilePOST /book-appointment- Book appointment
POST /login- Doctor authenticationGET /appointments- Get doctor appointmentsPUT /profile- Update doctor profile
POST /login- Admin authenticationPOST /add-doctor- Add new doctorGET /doctors- Get all doctorsGET /appointments- Get all appointments
- Set up environment variables on your hosting platform
- Deploy to services like Render, Railway, or DigitalOcean
- Ensure MongoDB connection is configured for production
- Build the applications:
npm run build
- Deploy to services like Vercel, Netlify, or AWS S3
- Update API endpoints to point to production backend
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Sehaj Makkar
- GitHub: @sehajmakkar
- Thanks to all contributors who helped build this platform
- Special thanks to the healthcare professionals who provided insights for the user experience
- Built with modern web technologies and best practices
For more information, please contact the development team or check the individual README files in each directory for specific setup instructions.