{"id":25422264,"url":"https://github.com/aryamagarwal/cureit","last_synced_at":"2025-10-31T12:30:39.325Z","repository":{"id":273981342,"uuid":"921521645","full_name":"aryamagarwal/cureit","owner":"aryamagarwal","description":"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.","archived":false,"fork":false,"pushed_at":"2025-02-15T08:50:30.000Z","size":15434,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T09:27:31.378Z","etag":null,"topics":["doctor-appointment-booking","expressjs","javascript","nodejs","reactvite","redis-cache","supabase","tailwindcss","tanstack-react-query"],"latest_commit_sha":null,"homepage":"https://aryamagarwal.github.io/cureit","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aryamagarwal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-24T05:22:18.000Z","updated_at":"2025-02-15T08:49:22.000Z","dependencies_parsed_at":"2025-02-08T08:36:50.699Z","dependency_job_id":null,"html_url":"https://github.com/aryamagarwal/cureit","commit_stats":null,"previous_names":["aryamagarwal/cureit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryamagarwal%2Fcureit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryamagarwal%2Fcureit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryamagarwal%2Fcureit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aryamagarwal%2Fcureit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aryamagarwal","download_url":"https://codeload.github.com/aryamagarwal/cureit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239197240,"owners_count":19598342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["doctor-appointment-booking","expressjs","javascript","nodejs","reactvite","redis-cache","supabase","tailwindcss","tanstack-react-query"],"created_at":"2025-02-16T21:24:11.114Z","updated_at":"2025-10-31T12:30:39.284Z","avatar_url":"https://github.com/aryamagarwal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cureit 🚀\n\n## Introduction\n\nCureit 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.\n\n📽 **Demo Video**\n🌐 **Deployed Project Link** -  [https://aryamagarwal.github.io/cureit](https://aryamagarwal.github.io/cureit)\n\n## Index\n- [Introduction](#introduction)\n- [Features and Functions](#features-and-functions)\n  - [Sign-Up and Login](#1-sign-up-and-login)\n  - [Booking Appointment](#2-booking-appointment)\n  - [Patient Dashboard](#3-patient-dashboard)\n  - [Doctor Dashboard](#4-doctor-dashboard)\n  - [Dynamic Queue Updates](#5-dynamic-queue-updates)\n  - [AI-Powered Chatbot](#6-ai-powered-chatbot)\n  - [Machine Learning Integration](#7-machine-learning-integration)\n  - [Reminder System](#8-reminder-system)\n  - [Online Prescriptions](#9-online-prescriptions)\n  - [Feedback System](#10-feedback-system)\n- [Tech Stack](#Technology-Stack)\n- [Implementation Flowchart](#Implementation-Flowchart)\n- [Continuous Improvement](#Continuous-Improvement)\n- [Conclusion](#Conclusion)\n- [Application Testing Guide](#application-testing-guide)\n\n\n## Features and Functions\n\n### 1. Sign-Up and Login\n\n- Users receive an **email verification link** upon sign-up.\n- After verification, they can log in using **email-password authentication**.\n- **Role-based access control (RBAC)** for patients and doctors.\n- Secure session handling via **Supabase Auth**.\n- Post-login redirection to the **profile dashboard** for additional details.\n- **Forgot Password** feature for secure password recovery.\n\n### 2. Booking Appointment\n\nBooking an appointment follows a structured **multi-step process** ensuring accuracy and an optimized workflow.\n\n#### **Personal Details**\n\n- Users input **key personal details** such as **name, age, gender, address, and health issue**.\n- **Geolocation API integration** for fetching the user's **current location**.\n\n#### **AI-Powered Doctor Specialization Suggestion**\n\n- **AI-driven model** dynamically determines the **most suitable doctor specialization** based on user symptoms.\n- Uses **TF-IDF** vectorization and a **Random Forest classifier** to analyze user input.\n- Preprocessing techniques like emoji removal, spell correction (TextBlob), and stopword removal (NLTK) enhance input quality.\n- If confidence is low, the ML model predicts the specialist with probability-based classification.\n\n#### **Slot Selection**\n\n- **Automated dynamic slot generation** based on real-time doctor availability.\n- **Real-time slot updates** to **prevent double booking**, powered by **Supabase**.\n- **Date picker** for selecting the consultation date.\n- Displays **doctor profiles** with expertise tags, enabling users to make informed decisions.\n\n#### **Review Booking**\n\n- Users can **verify all appointment details** before finalizing the booking.\n- **Editable appointment flow**, allowing users to revise selections before confirmation.\n- **Future-proof payment gateway integration** for seamless transactions.\n\n### 3. Patient Dashboard\n\nThe **Patient Dashboard** provides users with a centralized interface to manage appointments and profile details.\n\n#### **Profile Section**\n\n- Users can **update and manage** their **personal details**.\n- **Profile image upload** functionality for enhanced personalization.\n\n#### **Scheduled Appointments**\n\n- Displays **real-time queue status** with an estimated consultation time.\n- Option to **cancel scheduled appointments** as needed.\n\n#### **Appointment History**\n\n- Comprehensive record of previous consultations.\n- Access to **digital prescriptions and doctor notes**.\n\n### 4. Doctor Dashboard\n\nThe **Doctor Dashboard** provides an intelligent scheduling system for healthcare professionals.\n\n#### **Profile Section**\n\n- Doctors can **view** their **specialization, availability, and clinic details**.\n- Profile updates are **restricted to administrators** to maintain data integrity.\n\n#### **Live Queue Management**\n\n- **Real-time queue visualization** for efficient patient flow management.\n- Doctors can mark patient statuses as **checked-in, completed, or skipped**.\n\n##### **Skipping an Appointment**\n\n- Doctors can **skip an appointment** if a patient is unavailable or late.\n- **Automated queue updates** notify the **next patient** in line.\n\n##### **OTP Verification**\n\n- **Secure OTP-based authentication** ensures **correct patient identification** before consultation.\n\n#### **History**\n\n- Maintains a **log of all past consultations**, including patient details.\n- Allows doctors to **review and manage prescriptions and notes**.\n\n### 5. Dynamic Queue Updates\n\n- **Instant queue synchronization** using **Supabase real-time database**.\n- **Future enhancement**: Instant patient notifications when their turn approaches.\n- **Redis-based caching** for efficient queue management, enhancing scalability and responsiveness.\n\n### 6. AI-Powered Chatbot\n\n- **Retrieval-Augmented Generation (RAG)-based chatbot** for dynamic retrieval of medical knowledge.\n- Uses **Faiss** with **Sentence Transformers** for fast and accurate FAQ retrieval based on user queries.\n- Ensures **precise and personalized medical guidance**.\n- Supports real-time interaction via a **FastAPI**-powered backend.\n\n### 7. Machine Learning Integration\n\n- **AI-assisted diagnostic insights** for **symptom-based doctor recommendations**.\n- **Predictive analytics** for optimized appointment scheduling.\n\n### 8. Reminder System\n\n- **Automated email and SMS reminders** for upcoming consultations.\n\n### 9. Online Prescriptions\n\n- Doctors can **generate, upload, and digitally sign prescriptions**.\n- Patients can **securely access and download prescriptions** from their dashboard.\n\n### 10. Feedback System\n\n- Patients can **submit structured feedback** for doctors.\n- **AI-driven sentiment analysis** extracts **meaningful insights from patient feedback** using **DistilBERT** and **Sentence Transformers**.\n- Uses precomputed embeddings for efficient similarity matching and tagging.\n- Dynamically generates relevant expertise tags for doctor profiles based on **semantic similarity (Faiss)** and **keyword-based classification**.\n- Enhances **user experience and service optimization**.\n\n---\n\n## Technology Stack\n\n- **Frontend:** React, Vite, Tailwind CSS\n- **Backend:** Supabase (**PostgreSQL, Authentication, Real-time Database**), Node.js, Express.js, FastAPI\n- **Machine Learning:** Python, Faiss, Sentence Transformers, Scikit-learn, Hugging Face Transformers, NLTK, TextBlob\n- **Authentication:** Supabase Auth\n- **Caching \u0026 Performance:** Redis for **high-speed data retrieval and scalability**\n- **Data Fetching \u0026 State Management:** **TanStack React Query** for optimized client-server synchronization\n- **Email Services:** Nodemailer for **automated email handling, including OTP-based authentication**\n- **Deployment:** GitHub Pages, Render\n\n---\n\n## Implementation Flowchart\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/user-attachments/assets/b55d10b5-1a72-4a66-be3d-71d0c39c8ca1\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/user-attachments/assets/84ac78b0-85fc-415d-8e49-dcb1994ca2b8\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/b55d10b5-1a72-4a66-be3d-71d0c39c8ca1\" alt=\"My Image\"\u003e\n\u003c/picture\u003e\n\n---\n## Continuous Improvement\n\n### 1) Reception Dashboard\n- Patients check in by scanning a dynamic QR code.\n- QR code updates periodically for security.\n\n### 2) Managing Doctor Absences\n- Each doctor has 5 buffer slots for emergencies.\n- Patients can:\n  - Choose another available doctor.\n  - Reschedule their appointment.\n\n### 3) Online Video Consultation\n- Enable virtual appointments for remote consultations.\n- Simple and user-friendly booking.\n\n### 4) MBBS Intern Contributions\n- Interns assist with minor cases via online consultations.\n- Provides hands-on experience under supervision.\n\n### 5) Secure Payment System\n- Integrate payment gateway for smooth transactions and overall application robustness.\n\n### 6) Real-Time Monitoring Dashboard\n- Displays ongoing consultations at reception.\n- Shows doctor and patient queue details.\n- Helps manage waiting times efficiently.\n\nThese upgrades enhance efficiency, patient experience, and overall system effectiveness.\n\n---\n## Conclusion\n\nCureit **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**.\n\n---\n\n# Application Testing Guide\n\n## Login Credentials for Testing Doctor Dashboard\nUse the following doctor accounts to log in and test the application:\n\n| Doctor Email               | Password      |\n|----------------------------|--------------|\n| doctor1@example.com       | password123  |\n| doctor2@example.com       | password123  |\n| doctor3@example.com       | password123  |\n| doctor4@example.com       | password123  |\n| doctor5@example.com       | password123  |\n| doctor6@example.com       | password123  |\n| doctor7@example.com       | password123  |\n| doctor8@example.com       | password123  |\n| doctor9@example.com       | password123  |\n| doctor10@example.com      | password123  |\n\n\n\n## Specializations Available in Database\nCurrently, the following doctor specializations are available in the database:\n\n- Dermatologist\n- Pediatrician\n- Cardiologist\n- Psychiatrist\n- Orthopedic\n- Neurologist\n- Gynecologist\n- Urologist\n- ENT (Ear, Nose, Throat Specialist)\n- General Physician\n\n## Notes:\n- The doctor data in the database is for **testing purposes only**.\n- The **ML model** can map doctors to a **variety of other specializations** beyond those currently available in the database.\n\n\n## Patient Dashboard Testing Guide\n\n- Patients can sign up using their email ID.\n- After email verification, they can log in and follow the booking workflow.\n- Patients can edit their profile details, including name, age, and contact information.\n- They can book, view and cancel appointments from their dashboard.\n- Patients can access their medical history and view prescriptions and doctor's remarks (if any).\n\n\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryamagarwal%2Fcureit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faryamagarwal%2Fcureit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryamagarwal%2Fcureit/lists"}