Skip to content

Cureit is a user-friendly doctor appointment booking platform designed to eliminate the inconvenience of long waiting times and streamline the process of scheduling medical consultations.

License

Notifications You must be signed in to change notification settings

Priyanshu-2005/cureit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Cureit is a smart and accessible doctor appointment platform that bridges healthcare gaps for underserved communities by reducing wait times and streamlining scheduling. It helps patients connect with doctors effortlessly while enabling efficient queue management in hospitals and clinics. Powered by Supabase, Cureit ensures secure authentication, real-time syncing, and seamless healthcare access.

🌐 Deployed Project Link - https://aryamagarwal.github.io/cureit

CureIt FeedBack Form - https://forms.gle/7jNscB3c7jUewsaX7

Index

Features and Functions

1. Sign-Up and Login

  • Users receive an email verification link upon sign-up.
  • After verification, they can log in using email-password authentication.
  • Role-based access control (RBAC) for patients and doctors.
  • Secure session handling via Supabase Auth.
  • Post-login redirection to the profile dashboard for additional details.
  • Forgot Password feature for secure password recovery.

2. Booking Appointment

Booking an appointment follows a structured multi-step process ensuring accuracy and an optimized workflow.

Personal Details

  • Users input key personal details such as name, age, gender, address, and health issue.
  • Geolocation API integration for fetching the user's current location.

AI-Powered Doctor Specialization Suggestion

  • AI-driven model dynamically determines the most suitable doctor specialization based on user symptoms.
  • Uses TF-IDF vectorization and a Random Forest classifier to analyze user input.
  • Preprocessing techniques like emoji removal, spell correction (TextBlob), and stopword removal (NLTK) enhance input quality.
  • If confidence is low, the ML model predicts the specialist with probability-based classification.

Slot Selection

  • Automated dynamic slot generation based on real-time doctor availability.
  • Real-time slot updates to prevent double booking, powered by Supabase.
  • Date picker for selecting the consultation date.
  • Displays doctor profiles with expertise tags, enabling users to make informed decisions.

Review Booking

  • Users can verify all appointment details before finalizing the booking.
  • Editable appointment flow, allowing users to revise selections before confirmation.
  • Future-proof payment gateway integration for seamless transactions.

3. Patient Dashboard

The Patient Dashboard provides users with a centralized interface to manage appointments and profile details.

Profile Section

  • Users can update and manage their personal details.
  • Profile image upload functionality for enhanced personalization.

Scheduled Appointments

  • Displays real-time queue status with an estimated consultation time.
  • Option to cancel scheduled appointments as needed.

Appointment History

  • Comprehensive record of previous consultations.
  • Access to digital prescriptions and doctor notes.

4. Doctor Dashboard

The Doctor Dashboard provides an intelligent scheduling system for healthcare professionals.

Profile Section

  • Doctors can view their specialization, availability, and clinic details.
  • Profile updates are restricted to administrators to maintain data integrity.

Live Queue Management

  • Real-time queue visualization for efficient patient flow management.
  • Doctors can mark patient statuses as checked-in, completed, or skipped.
Skipping an Appointment
  • Doctors can skip an appointment if a patient is unavailable or late.
  • Automated queue updates notify the next patient in line.
OTP Verification
  • Secure OTP-based authentication ensures correct patient identification before consultation.

History

  • Maintains a log of all past consultations, including patient details.
  • Allows doctors to review and manage prescriptions and notes.

5. Dynamic Queue Updates

  • Instant queue synchronization using Supabase real-time database.
  • Future enhancement: Instant patient notifications when their turn approaches.
  • Redis-based caching for efficient queue management, enhancing scalability and responsiveness.

6. AI-Powered Chatbot

  • Retrieval-Augmented Generation (RAG)-based chatbot for dynamic retrieval of medical knowledge.
  • Uses Faiss with Sentence Transformers for fast and accurate FAQ retrieval based on user queries.
  • Ensures precise and personalized medical guidance.
  • Supports real-time interaction via a FastAPI-powered backend.

7. Machine Learning Integration

  • AI-assisted diagnostic insights for symptom-based doctor recommendations.
  • Predictive analytics for optimized appointment scheduling.

8. Reminder System

  • Automated email and SMS reminders for upcoming consultations.

9. Online Prescriptions

  • Doctors can generate, upload, and digitally sign prescriptions.
  • Patients can securely access and download prescriptions from their dashboard.

10. Feedback System

  • Patients can submit structured feedback for doctors.
  • AI-driven sentiment analysis extracts meaningful insights from patient feedback using DistilBERT and Sentence Transformers.
  • Uses precomputed embeddings for efficient similarity matching and tagging.
  • Dynamically generates relevant expertise tags for doctor profiles based on semantic similarity (Faiss) and keyword-based classification.
  • Enhances user experience and service optimization.

11. Reception Dashboard

  • Displays a unique QR code that patients can scan using their mobile devices to quickly check in upon arrival at the health facility.
  • Continuously monitors and displays the queue status, showcasing the next four patients scheduled for consultation with each doctor.
  • Facilitates streamlined coordination between patients and healthcare providers by keeping reception staff informed of current and upcoming appointments.

12. Health Worker Dashboard

  • Enables health workers and NGOs to perform preliminary health checkups and log citizen complaints, which can be escalated to relevant authorities or healthcare professionals for timely action.
  • Provides tools to organize and manage free health camps, allowing workers to schedule events, assign roles, and track participation.
  • Allows doctors to volunteer for health camps and coordinate directly with health workers for event planning and patient support.

Technology Stack

  • Frontend: React, Vite, Tailwind CSS
  • Backend: Supabase (PostgreSQL, Authentication, Real-time Database), Node.js, Express.js, FastAPI
  • Machine Learning: Python, Faiss, Sentence Transformers, Scikit-learn, Hugging Face Transformers, NLTK, TextBlob
  • Authentication: Supabase Auth
  • Caching & Performance: Redis for high-speed data retrieval and scalability
  • Data Fetching & State Management: TanStack React Query for optimized client-server synchronization
  • Email Services: Nodemailer for automated email handling, including OTP-based authentication
  • Deployment: GitHub Pages, Render

Implementation Flowchart

My Image

Continuous Improvement

1) Managing Doctor Absences

  • Each doctor has 5 buffer slots for emergencies.
  • Patients can:
    • Choose another available doctor.
    • Reschedule their appointment.

2) MBBS Intern Contributions

  • Interns assist with minor cases via online consultations.
  • Provides hands-on experience under supervision.

3) Secure Payment System

  • Integrate payment gateway for smooth transactions and overall application robustness.

These upgrades enhance efficiency, patient experience, and overall system effectiveness.


Conclusion

Cureit revolutionizes doctor appointment booking with a high-performance, AI-powered, and real-time platform designed for both patients and doctors. Utilizing Supabase for real-time updates, authentication, and secure data management, Cureit ensures seamless reliability and ease of use. With ML-driven doctor recommendations, intelligent queue management, Redis caching for scalability, and digital prescriptions, Cureit stands as a cutting-edge solution improving healthcare accessibility and efficiency.


Application Testing Guide

Login Credentials for Testing Doctor Dashboard

Use the following doctor accounts to log in and test the application:

Doctor Email Password
doctor1@example.com password123
doctor2@example.com password123
doctor3@example.com password123
doctor4@example.com password123
doctor5@example.com password123
doctor6@example.com password123
doctor7@example.com password123
doctor8@example.com password123
doctor9@example.com password123
doctor10@example.com password123

Specializations Available in Database

Currently, the following doctor specializations are available in the database:

  • Dermatologist
  • Pediatrician
  • Cardiologist
  • Psychiatrist
  • Orthopedic
  • Neurologist
  • Gynecologist
  • Urologist
  • ENT (Ear, Nose, Throat Specialist)
  • General Physician

Notes:

  • The doctor data in the database is for testing purposes only.
  • The ML model can map doctors to a variety of other specializations beyond those currently available in the database.

Patient Dashboard Testing Guide

  • Patients can sign up using their email ID.
  • After email verification, they can log in and follow the booking workflow.
  • Patients can edit their profile details, including name, age, and contact information.
  • They can book, view and cancel appointments from their dashboard.
  • Patients can access their medical history and view prescriptions and doctor's remarks (if any).

Reception Dashboard Testing Guide

Reception Email Password
reception1@example.com reception123

Health Worker Dashboard Testing Guide

Health Worker Email Password
healthworker1@example.com HEALTH123

Screenshots

Screenshot 2025-04-03 at 11 09 53 PM

  • Login
    Screenshot 2025-04-03 at 11 00 05 PM


  • SignUp
  • Screenshot 2025-04-03 at 11 00 05 PM


    Forgot Password
  • Screenshot 2025-04-03 at 11 00 05 PM


    Verification Page
  • Screenshot 2025-04-03 at 11 00 05 PM


  • Patient Dashboard
    • Profile
      Screenshot 2025-04-03 at 11 24 35 PM
      The profile tab provides users with a detailed view of their personal information, including fields such as email, phone, address, age, and gender.
      Additionally, it displays any appointments scheduled for the current day, helping users stay updated on their schedule.
      This section ensures easy access to essential details while keeping track of upcoming consultations.
    • Upcoming Booked Appointments
      Screenshot 2025-04-03 at 11 24 35 PM
      The Upcoming Appointments section displays all scheduled appointments, providing users with essential details such as **doctor’s name, specialization, hospital, address, expected time, appointment date, and queue position.
      In case of an emergency or change of plans, users have the option to cancel their appointment directly from this section. Additionally, a QR code check-in system is available, allowing users to seamlessly check in at the reception by scanning the QR code displayed on the reception dashboard.
      -Past Appointments(History)
      Screenshot 2025-04-03 at 11 24 35 PM
      The Appointment History section provides users with a record of their past appointments, displaying key details such as doctor’s name, specialization, hospital, address, appointment time, and date.
      To enhance user experience, this section includes a feedback feature, allowing patients to share their experiences and provide insights for service improvement. Additionally, users can access detailed information about their past consultations for future reference.



  • Doctor Dashboard

    • Profile
      Screenshot 2025-04-03 at 11 24 35 PM
      The Doctor Profile section provides essential details about the doctor, including email, phone, address, specialization, age, and gender. This information ensures easy access for patients and staff, facilitating smooth communication and coordination. Additionally, this section includes a "Download Today's Appointments" button, allowing doctors to efficiently access a list of scheduled appointments for the day. This feature helps in managing consultations effectively and staying organized.
    • Excel Sheet for Displaying Current Appointments
      Screenshot 2025-04-03 at 11 24 35 PM
      Doctors can download a backup of all scheduled appointments for the day to handle patient queues during power failures or system downtimes. The downloaded file includes patient details, appointment status, doctor, and specialization, allowing reception staff to manually manage check-ins without system access. This ensures uninterrupted workflow and prevents delays in patient care. The backup can be manually triggered or auto-scheduled for reliability.
    • Appointments Queue
      Screenshot 2025-04-03 at 11 24 35 PM
      The Appointment Queue section displays a list of patients waiting for their appointments, providing key details such as patient name, age & gender, hospital, expected appointment time, appointment date, and queue position. Each patient entry includes action buttons for "Skip", "OTP Verification", and "Details", enabling doctors to manage the queue efficiently. The OTP verification ensures secure patient identification, while the queue system helps streamline patient flow and reduce wait times.

    -Past Appointments(History)
    Screenshot 2025-04-03 at 11 24 35 PM
    The Appointment History section provides a record of past patient consultations, displaying key details such as patient name, age & gender, issue, hospital, appointment time, and appointment date. Each entry allows doctors to review past interactions and track patient history for better follow-ups and continuity of care. A "Details" button is available for accessing more in-depth information about the appointment.



  • Reception Dashboard

    • Profile
      Screenshot 2025-04-03 at 11 24 35 PM
      The Reception Profile section provides essential details about the hospital, including hospital name, address, and email, ensuring easy access to contact information. A QR Code is displayed, which patients need to scan for check-in upon arrival. The current code shown beneath the QR code ensures secure and efficient authentication for patients, streamlining the check-in process and reducing manual efforts at the reception.
    • Real time Queue Monitoring
      Screenshot 2025-04-03 at 11 24 35 PM
      The Reception Dashboard provides real-time insights into patient queues and doctor availability, using WebSockets for instant updates. It displays total patients, active doctors, current time, and the last updated timestamp, with a refresh button for manual updates. Each doctor has a queue status card showing their name, profile icon, patient count, and queue status (e.g., "No patients," "Active," or "Busy"). A queue list with patient names and positions appears if applicable, and doctors with no patients see a "Clear" button to reset their status. WebSockets enable automatic updates, ensuring patient check-ins via QR codes, doctor availability, and queue status changes reflect in real time, reducing delays and improving efficiency.

  • Booking Process and AI-Powered Doctor Specialization Suggestion Screenshot 2025-04-03 at 11 24 35 PM
    Screenshot 2025-04-03 at 11 24 35 PM
    Screenshot 2025-04-03 at 11 24 35 PM
    Screenshot 2025-04-03 at 11 24 35 PM
    Screenshot 2025-04-03 at 11 24 35 PM


  • Prescription Process

  • Doctor Dashboard Appointments
    11)DoctorDashboard_Queue
    Doctor Views his current days schedule and confirms the presence of the patient by using OTP verification(only if the patient has not checked in) then the patient recieves the OTP

  • Patient recieving OTP
    13)Docotr_dashboard_Otp_Verification

  • Doctor giving prescription
    14)Doctor_Dashbaord_Prescription
    Doctors provide prescriptions by filling out the following fields: Doctor Remarks, where they note the patient's condition, and Medical Prescription, where they list recommended medications. The prescription follows a structured format, ensuring clarity for both patients and pharmacists.

  • Patient Feedback Process

  • Patient Dashboard History

    • 15)Patient_Dashboard_History
      Patients can view their past appointments along with details such as the doctor's name, specialization, hospital, address, appointment date, and time. They also have the option to provide feedback on their experience, helping improve healthcare services. Additionally, a "Get Directions" feature assists patients in locating the hospital easily.
  • Patient Feedback Portal

    • 16)Patient_Feedback
      Users can provide feedback on their past medical appointments by clicking the Feedback button in the History tab. A popup appears where they can enter their experience with the doctor and treatment. They can then submit the feedback by clicking Send or cancel it if needed. This feature helps improve healthcare services based on patient reviews.

-AI generated Tag of the feedback displayed over the doctor profile

  • 17)Doctor_Dashboard_feedback_summary
    User feedback is processed using an ML model to generate concise tags summarizing key aspects of the doctor’s service. These tags, such as "Helpful" or "Experienced," are displayed on the doctor’s profile when patients select a doctor and time slot. This helps patients make informed decisions based on past experiences of previous doctors.

  • FAQ Chatbot

Screenshot 2025-04-03 at 11 15 30 PM ---

About

Cureit is a user-friendly doctor appointment booking platform designed to eliminate the inconvenience of long waiting times and streamline the process of scheduling medical consultations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 92.9%
  • Python 4.8%
  • HTML 1.8%
  • Other 0.5%