Skip to content

Doctor Appointment Booking platform built with the MERN stack. It includes secure authentication, doctor listings with specialization filters, appointment scheduling, and integrated Razorpay payment for seamless online booking. Admin and Doctor dashboards help manage availability, appointments, and user data in real time.

Notifications You must be signed in to change notification settings

rajeevkrS/Appointment-Booking-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppointMed App

This application is deployed on Vercel. Please check it out here.

threads-thumbnail

Introduction

A full-stack Doctor Appointment Booking platform built with the MERN stack, featuring secure authentication, doctor listings with specialization filters, appointment scheduling, and integrated Razorpay payment for seamless online booking. It also includes a dedicated Admin panel where the admin can add and manage doctors, monitor appointments, and oversee platform activity, along with Doctor dashboards that allow doctors to review patient bookings, control their availability, and take action on appointments in real time.

🖥️ Tech Stack

Frontend:

React  React Router  Static Badge   Static Badge  

Backend:

Static Badge   Static Badge   Static Badge   MongoDB  

Deployed On:

Static Badge  

User Features

  • User Authentication: Secure user authentication for account creation and login.
  • Profile Management: Users can update personal details and manage their profile information.
  • Filter Doctors: Filter doctors by specialization or category for easy selection.
  • Appointment Booking: Book appointments with preferred doctors by choosing available dates and time slots.
  • Manage Bookings: View, manage, and track booked appointments.
  • Razorpay Payment Integration: Fully secure online payment system for booking confirmation.

Doctor Features

  • Doctor Login System: Doctors can log in securely to their dedicated panel.
  • Appointment Review: View upcoming appointments and patient details.
  • Appointment Actions: Accept, cancel, or mark appointments as completed.
  • Availability Management: Update availability status and control scheduling.

Admin Features

  • Admin Login Panel: Dedicated admin authentication for secure access.
  • Doctor Management: Add new doctors, update details, and manage listings.
  • System Monitoring: Track platform statistics, booking insights, and dashboard analytics.
  • Appointment Supervision: Monitor all user-doctor appointments across the system.
  • Platform Control: Manage user and doctor activity, availability, and account states.
  • Responsive Design: Fully responsive design for seamless use on any device.

Installation

  1. Clone the repository:

    git clone https://github.com/rajeevkrS/Appointment-Booking-System
  2. Install dependencies in admin, backend and frontend:

    cd admin
    npm install
    
    cd backend
    npm install
    
    cd frontend
    npm install
  3. Set up environment .env variables:

                         # BACKEND ENV GUIDE
    
    # mongodb database
    MONGODB_URI= your mongodb url
    
    # cloudinary setup
    CLOUDINARY_NAME= your cloudinary name
    CLOUDINARY_API_KEY= your cloudinary api key
    CLOUDINARY_SECRET_KEY= your cloudinary secret key
    
    # for password secret
    JWT_SECRET = your jwt secret
    
    # for razorpay payment
    RAZORPAY_KEY_ID= your razorpay key id
    RAZORPAY_KEY_SECRET= your razorpay secret key
    
    # admin login info
    ADMIN_EMAIL= your admin email
    ADMIN_PASSWORD= your admin password
    
    # currency
    CURRENCY= your currency
    
                         # FRONTEND ENV GUIDE
    
    VITE_BACKEND_URL= your backend url
    VITE_RAZORPAY_KEY_ID= your razorpay key id
    
                         # ADMIN ENV GUIDE
    
    VITE_BACKEND_URL= your backend url
  4. Run the application: In the admin directory, start the Admin React app:

    npm run dev

    In the backend directory, start the server:

    npm run server

    In the frontend directory, start the Frontend React app:

    npm run dev

API Endpoints

Here are listed all available API endpoints along with a brief description of each.

Users Routes:

  • POST /api/user/register: create 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 an appointment
  • GET /api/user/appointments: get all appointments
  • POST /api/user/cancel-appointment: cancel an appointment
  • POST /api/user/payment-razorpay: make payment with razorpay
  • POST /api/user/verifyRazorpay: change status after verify razorpay

Doctor Routes:

  • POST /api/doctor/login: doctor login
  • GET /api/doctor/appointments: get logged in doctor's appointments
  • POST /api/doctor/complete-appointment: complete an appointment
  • POST /api/doctor/cancel-appointment: cancel an appointment
  • GET /api/doctor/dashboard: get logged in doctor's dashboard data
  • GET /api/doctor/profile: get doctor profile
  • POST /api/doctor/update-profile: update doctor profile
  • GET /api/doctor/list: get doctor list

Admin Routes:

  • POST /api/admin/login: admin login
  • POST /api/admin/all-doctors: manage all doctors
  • POST /api/admin/add-doctor: add doctors
  • POST /api/admin/change-availability: change availability any doctor
  • GET /api/admin/appointments: get all appointments
  • POST /api/admin/cancel-appointment: cancel an appointment
  • GET /api/admin/dashboard: get all data on dashboard

Admin Pannel Preview

Please check it out here. (Go for Doctor Login)

Admin-Panel

👤 Developer

RAJEEV KUMAR SUDHANSU

📬 Contact

If you want to contact me, you can reach me through below handles.

LinkedIn

Gmail

Contribution:

Feel free to contribute to the project by opening issues or creating pull requests. Your feedback and suggestions are highly appreciated.

Show your support by Star 🌟 this repo!

About

Doctor Appointment Booking platform built with the MERN stack. It includes secure authentication, doctor listings with specialization filters, appointment scheduling, and integrated Razorpay payment for seamless online booking. Admin and Doctor dashboards help manage availability, appointments, and user data in real time.

Topics

Resources

Stars

Watchers

Forks

Languages