MediBook is a full-stack doctor appointment booking platform that allows patients to search for doctors, view available schedules, and book appointments online. Doctors can manage their profiles, availability, and patient appointments through a dedicated dashboard. The system supports role-based authentication, secure API communication, and real-time appointment management.
- User registration and login
- Role-based authentication (Patient and Doctor)
- Doctor search and listing
- Appointment booking system
- Time slot scheduling
- Patient dashboard
- Doctor dashboard
- Profile management
- Responsive UI
- Secure REST APIs
- Cloud deployment
Frontend:
- React
- Tailwind CSS
- Axios
- React Router
Backend:
- Node.js
- Express.js
- JWT Authentication
Database:
- PostgreSQL
- Supabase
Deployment:
- Vercel (Frontend)
- Render (Backend)
The application follows a decoupled client-server architecture. The frontend application communicates with backend REST APIs using asynchronous HTTP requests. The backend processes incoming requests, enforces business validation logic, and interacts with the PostgreSQL database. Authentication and session state are managed securely utilizing stateless JWT tokens.
Clone the repository and install the standard dependencies required for local development.
git clone repository_url
cd medibook
npm installCreate a configuration file at the application root containing the necessary system parameters.
PORT=5000
DATABASE_URL=your_database_url
JWT_SECRET=your_secret_key
CLIENT_URL=http://localhost:3000To initialize the application locally, execute the following commands in separate terminal sessions.
Start the backend server process:
npm run devStart the frontend development server:
npm startBelow are foundational examples of the core endpoints exposed by the backend service.
POST /api/auth/register- Registers a new user accountPOST /api/auth/login- Authenticates credentials and issues a JWT tokenGET /api/doctors- Retrieves a paginated list of available doctorsGET /api/doctors/:id- Fetches specific doctor details and scheduling availabilityPOST /api/appointments- Initiates a new appointment bookingGET /api/appointments/:id- Retrieves appointment history for a specific user
The application utilizes cloud infrastructure optimized for JavaScript workloads. The React frontend is deployed to Vercel for high-performance edge delivery. The built Express server runs via Render, establishing a continuous connection with the cloud-hosted PostgreSQL database provisioned through Supabase.
medibook/
├── client/
│ ├── public/
│ └── src/
│ ├── components/
│ ├── pages/
│ ├── context/
│ └── utils/
├── server/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── middleware/
├── .env.example
└── README.md
- Online payment integration
- Email notifications
- Admin dashboard
- Appointment reminders
- Real-time chat system
Developed for professional portfolio presentation.