This device is not compatible.
PROJECT
Build a Doctor Appointment Booking System Using the MyERN Stack
In this project, we’ll learn to build a fully functional Doctor Appointment Booking System using the MyERN stack (MySQL, Express.js, React, and Node.js). This full stack health care web app enables users to search for doctors, view detailed profiles, check live availability, and book appointments through an interactive calendar. Key features include secure user authentication and appointment management. The project emphasizes responsive UI/UX design, RESTful API integration, and dynamic slot scheduling with a MySQL database. This project is ideal for developers looking to master MyERN stack development, React-based booking systems, and practical health tech applications.
You will learn to:
Build MyERN stack applications through hands-on experience.
Enhance frontend development skills using React components and custom UI design.
Improve your ability to build REST APIs and manage sessions with authentication.
Connect the Node.js server to MySQL to store and retrieve data.
Use the Axios library to link React components with the Node.js server.
Skills
Full Stack Development
API Development
Web Frameworks
Prerequisites
Basic understanding of React components and state
Basic understanding of React Hooks
Basic understanding of MySQL
Basic understanding of Node.js and Express
Basic understanding of LLMs
Technologies
MySQL
Gemini
Node.js
Express
JavaScript
Project Description
Scheduling health care appointments is often a manual and fragmented process for both patients and clinics. With this project, we simplify and modernize the experience by guiding developers through building a Doctor Appointment Booking System, now enhanced with AI-powered chatbot support. Our solution streamlines how patients search for doctors, view availability, and book consultations, replacing outdated methods such as phone-based scheduling or unstructured messaging. We built this full-stack web application with React, Node.js, Express, and MySQL.
It provides two primary user interfaces, plus a conversational assistant that improves accessibility and engagement:
1. Find a doctor and book an appointment
Users can:
Browse detailed doctor profiles with specialties, fees, experience, and reviews.
Select appointment dates via a custom calendar.
View real-time available time slots and book appointments with a reason for the visit.
Receive confirmation and feedback after booking.
Get assistance from an integrated chatbot that helps with navigation and answers queries.
2. Appointment management
Patients can:
Log in securely and manage their appointments.
View past and upcoming bookings.
Cancel appointments if needed.
3. Chatbot integration
We integrate a chatbot powered by Google Gemini to assist users with booking and navigation.
It is embedded directly into the interface, offering real-time, AI-driven responses.
This feature enhances the user experience by making the system more interactive and accessible.
Project Tasks
1
Introduction
Task 0: Get Started
Task 1: Run the Application
Task 2: Get the API Key
2
Create a Rest API Using Node.js
Task 3: Define the MySQL Database Tables
Task 4: Verify Database Schema and Tables in MySQL CLI
Task 5: Set Up Node.js Server and MySQL Connection
Task 6: Create Doctor Routes
Task 7: Create User Routes
Task 8: Create Appointments Routes
3
Create a ChatBot using Gemini
Task 9: Initialize a Vector Store
Task 10: Import the Gemini Model
Task 11: Implement the Chatbot
Task 12: Configure the Server
4
Develop the Header Component and the Chatbot
Task 13: Implement the Header Component
Task 14: Add CSS Styles to the Header Component
Task 15: Define and Register All Routes in the App.js File
Task 16: Implement the Chatbot
5
Develop the Login and Sign-Up Component
Task 17: Implement the Login Component
Task 18: Add CSS Styles to the Login Component
Task 19: Implement the Sign-Up Component
Task 20: Add CSS Styles to the Sign-Up Component
6
Develop the Home and Appointment Component
Task 21: Implement the Home Component
Task 22: Add CSS Styles to the Home Component
Task 23: Implement the BookAppointment Component
Task 24: Add CSS Styles to the BookAppointment Component
Task 25: Implement the ShowAppointment Component
Task 26: Add CSS Styles to the ShowAppointment Component
7
Wrap Up
Congratulations!
Subscribe to project updates
Atabek BEKENOV
Senior Software Engineer
Pradip Pariyar
Senior Software Engineer
Renzo Scriber
Senior Software Engineer
Vasiliki Nikolaidi
Senior Software Engineer
Juan Carlos Valerio Arrieta
Senior Software Engineer
Relevant Courses
Use the following content to review prerequisites or explore specific concepts in detail.