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
- Introduction
- Features and Functions
- Tech Stack
- Implementation Flowchart
- Continuous Improvement
- Conclusion
- Application Testing Guide
- 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.
Booking an appointment follows a structured multi-step process ensuring accuracy and an optimized workflow.
- 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-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.
- 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.
- 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.
The Patient Dashboard provides users with a centralized interface to manage appointments and profile details.
- Users can update and manage their personal details.
- Profile image upload functionality for enhanced personalization.
- Displays real-time queue status with an estimated consultation time.
- Option to cancel scheduled appointments as needed.
- Comprehensive record of previous consultations.
- Access to digital prescriptions and doctor notes.
The Doctor Dashboard provides an intelligent scheduling system for healthcare professionals.
- Doctors can view their specialization, availability, and clinic details.
- Profile updates are restricted to administrators to maintain data integrity.
- Real-time queue visualization for efficient patient flow management.
- Doctors can mark patient statuses as checked-in, completed, or skipped.
- Doctors can skip an appointment if a patient is unavailable or late.
- Automated queue updates notify the next patient in line.
- Secure OTP-based authentication ensures correct patient identification before consultation.
- Maintains a log of all past consultations, including patient details.
- Allows doctors to review and manage prescriptions and notes.
- 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.
- 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.
- AI-assisted diagnostic insights for symptom-based doctor recommendations.
- Predictive analytics for optimized appointment scheduling.
- Automated email and SMS reminders for upcoming consultations.
- Doctors can generate, upload, and digitally sign prescriptions.
- Patients can securely access and download prescriptions from their dashboard.
- 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.
- 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.
- 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.
- 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
- Each doctor has 5 buffer slots for emergencies.
- Patients can:
- Choose another available doctor.
- Reschedule their appointment.
- Interns assist with minor cases via online consultations.
- Provides hands-on experience under supervision.
- Integrate payment gateway for smooth transactions and overall application robustness.
These upgrades enhance efficiency, patient experience, and overall system effectiveness.
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.
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 |
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
- 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.
- 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 Email | Password |
---|---|
reception1@example.com | reception123 |
Health Worker Email | Password |
---|---|
healthworker1@example.com | HEALTH123 |
- Login
- SignUp
Forgot Password
Verification Page
- Patient Dashboard
- Profile
The profile tab provides users with a detailed view of their personal information, including fields such asemail
,phone
,address
,age
, andgender
.
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
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
, andqueue 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)
The Appointment History section provides users with a record of their past appointments, displaying key details such asdoctor’s name
,specialization
,hospital
,address
,appointment time
, anddate
.
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.
- Profile
-
Doctor Dashboard
- Profile
The Doctor Profile section provides essential details about the doctor, includingemail
,phone
,address
,specialization
,age
, andgender
. 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
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
The Appointment Queue section displays a list of patients waiting for their appointments, providing key details such aspatient name
,age & gender
,hospital
,expected appointment time
,appointment date
, andqueue 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)
The Appointment History section provides a record of past patient consultations, displaying key details such aspatient name
,age & gender
,issue
,hospital
,appointment time
, andappointment 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. - Profile
-
Reception Dashboard
- Profile
The Reception Profile section provides essential details about the hospital, includinghospital name
,address
, andemail
, ensuring easy access to contact information. A QR Code is displayed, which patients need to scan for check-in upon arrival. Thecurrent 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
The Reception Dashboard provides real-time insights into patient queues and doctor availability, using WebSockets for instant updates. It displaystotal patients
,active doctors
,current time
, and thelast updated timestamp
, with arefresh button
for manual updates. Each doctor has a queue status card showing theirname
,profile icon
,patient count
, andqueue status
(e.g., "No patients," "Active," or "Busy"). Aqueue 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.
- Profile
-
Booking Process and AI-Powered Doctor Specialization Suggestion
-
Prescription Process
-
Doctor Dashboard Appointments
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 -
Doctor giving 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
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
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
-
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
