Cureit is an intuitive and robust doctor appointment booking platform designed to mitigate long waiting times and optimize the scheduling process for medical consultations. The platform ensures a seamless user experience by enabling patients to book appointments effortlessly while equipping doctors with efficient schedule management tools. Cureit is powered by Supabase for authentication, database management, and real-time synchronization.
📽 Demo Video - Demo Video Link
🌐 Deployed Project Link - https://aryamagarwal.github.io/cureit
- 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.
- 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
- Patients check in by scanning a dynamic QR code.
- QR code updates periodically for security.
- Each doctor has 5 buffer slots for emergencies.
- Patients can:
- Choose another available doctor.
- Reschedule their appointment.
- Enable virtual appointments for remote consultations.
- Simple and user-friendly booking.
- Interns assist with minor cases via online consultations.
- Provides hands-on experience under supervision.
- Integrate payment gateway for smooth transactions and overall application robustness.
- Displays ongoing consultations at reception.
- Shows doctor and patient queue details.
- Helps manage waiting times efficiently.
These upgrades enhance efficiency, patient experience, and overall system effectiveness.
Cureit transforms the doctor appointment booking experience by delivering a high-performance, AI-integrated, and real-time platform for patients and doctors alike. By leveraging Supabase for real-time updates, authentication, and secure data management, the platform ensures uncompromised reliability and ease of use. Features like ML-based doctor recommendations, dynamic queue management, Redis caching for performance scaling, and digital prescriptions position Cureit as a cutting-edge solution enhancing 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).