A comprehensive medical appointment booking system built with MERN stack that allows patients to book appointments with doctors, manage their profiles, and interact with healthcare providers efficiently.
It is hosted on vercel
- User registration and authentication
- Browse and search for doctors by speciality
- Book appointments with available time slots
- View and manage upcoming appointments
- Update personal profile information
- Secure payment integration
- Mobile responsive design
- Doctor authentication and profile management
- View and manage appointment schedules
- Mark appointments as completed or cancelled
- Update availability status
- Dashboard with earnings and patient statistics
- Profile customization with fees and availability
- Admin dashboard with comprehensive analytics
- Manage all doctors and their availability
- View and manage all appointments
- Add new doctors to the system
- Cancel appointments when necessary
- Monitor system statistics and earnings
- React.js for user interface
- React Router for navigation
- Axios for API calls
- React Toastify for notifications
- Tailwind CSS for styling
- Vite as build tool
- Node.js runtime environment
- Express.js web framework
- MongoDB database with Mongoose ODM
- JWT for authentication
- Bcrypt for password hashing
- Cloudinary for image storage
- Multer for file uploads
- CORS for cross-origin requests
- Node.js version 14 or higher
- MongoDB database
- Cloudinary account for image storage
-
Navigate to backend directory cd backend
-
Install dependencies npm install
-
Create environment file Create .env file in backend directory with following variables as .env.example.
-
Start backend server npm start
-
Navigate to frontend directory cd frontend
-
Install dependencies npm install
-
Create environment file Create .env file in frontend directory: VITE_BACKEND_URL=http://localhost:3000
-
Start frontend development server npm run dev
-
Navigate to admin directory cd admin
-
Install dependencies npm install
-
Create environment file Create .env file in admin directory: VITE_BACKEND_URL=http://localhost:3000
-
Start admin panel development server npm run dev
Cure_Desk/
├── backend/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── config/
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── context/
│ │ └── assets/
│ └── public/
├── admin/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── context/
│ │ └── assets/
│ └── public/
└── readme.md
- POST /api/user/register - Register new user
- POST /api/user/login - User login
- GET /api/user/get-profile - Get user profile
- POST /api/user/update-profile - Update user profile
- POST /api/user/book-appointment - Book new appointment
- GET /api/user/appointments - Get user appointments
- POST /api/user/cancel-appointment - Cancel appointment
- POST /api/doctor/login - Doctor login
- GET /api/doctor/appointments - Get doctor appointments
- POST /api/doctor/cancel-appointment - Cancel appointment
- POST /api/doctor/complete-appointment - Mark appointment complete
- GET /api/doctor/profile - Get doctor profile
- POST /api/doctor/update-profile - Update doctor profile
- GET /api/doctor/dashboard - Get doctor dashboard data
- POST /api/admin/login - Admin login
- POST /api/admin/add-doctor - Add new doctor
- GET /api/admin/all-doctors - Get all doctors
- POST /api/admin/change-availability - Change doctor availability
- GET /api/admin/all-appointments - Get all appointments
- POST /api/admin/cancel-appointment - Cancel appointment
- GET /api/admin/dashboard - Get admin dashboard data
- Register for a new account or login with existing credentials
- Browse available doctors by speciality
- Select a doctor and choose available appointment slot
- Fill in appointment details and confirm booking
- Manage appointments from the My Appointments section
- Update profile information as needed
- Login with doctor credentials through admin panel
- View scheduled appointments in doctor dashboard
- Mark appointments as completed or cancel if necessary
- Update profile information including fees and availability
- Monitor earnings and patient statistics
- Login with admin credentials
- Add new doctors to the system
- Manage doctor availability and profiles
- Monitor all appointments and system activity
- View comprehensive dashboard analytics
- JWT tokens for secure authentication
- Bearer token format for API requests
- Password hashing using bcrypt
- Protected routes requiring authentication
- Token expiration handling
- CORS configuration for secure cross-origin requests
- name, email, password
- phone, address, gender, date of birth
- profile image
- timestamps
- name, email, password
- speciality, degree, experience
- about, fees, address
- availability status
- profile image
- slots booked information
- user ID and doctor ID references
- appointment date and time
- user data and doctor data
- appointment amount
- payment status
- completion status
- cancellation status
- Fork the repository
- Create a new branch for your feature
- Make your changes and test thoroughly
- Submit a pull request with detailed description
This project is licensed under the MIT License
For any questions or support, please contact the development team through the repository issues section.