Patient-Doctor Booking System built with the MERN stack
ZoiApp2021 is a booking platform that connects patients with specialist doctors in their area.
Patients can browse available specialists, book appointments, and receive notifications once their booking is confirmed.
Doctors control their own schedules by specifying available days and time slots, ensuring they manage their patient load effectively.
- Patients browse and filter doctors by specialty and location.
- Real-time appointment availability based on the doctor’s schedule.
- Doctors receive instant notifications for new bookings.
- Role-based authentication: separate dashboards for patients and doctors.
- CRUD operations for appointments and user profiles.
No live demo is available at the moment. The app runs locally on your machine.
Below is a screenshot of the homepage interface:
- Node.js v14 or higher
- npm or Yarn
- MongoDB running locally (or a MongoDB Atlas URI)
-
Clone the repo
git clone https://github.com/your-org/zoiapp2021.git cd zoiapp2021 -
Install dependencies for both servers
# In the root npm install # Frontend cd client npm install # Backend cd ../server npm install
-
Create a
.envfile inserver/with at least:MONGO_URI=<your_mongodb_connection_string> JWT_SECRET=<your_jwt_secret>
- Start MongoDB if not already running.
- Launch the backend server
cd server npm run dev - Start the React frontend
cd client npm start - Open your browser at
http://localhost:3000
- Models: Mongoose schemas for Users, Doctors, Appointments
- Views: React components handling routes, state, and UI
- Controllers: Express route handlers encapsulating business logic
| Layer | Technology |
|---|---|
| Frontend | React, React Router |
| Backend | Node.js, Express |
| Database | MongoDB, Mongoose |
| Authentication | JWT |
| State Mgmt | React Context / Hooks |
zoiapp2021/
├── client/ # React frontend
│ ├── public/
│ └── src/
│ ├── components/
│ ├── pages/
│ └── services/
├── server/ # Express backend
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── utils/
└── .env
We welcome your contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request on GitHub
This project is licensed under the MIT License.