{"id":24569108,"url":"https://github.com/ryomendev/healthbridge","last_synced_at":"2026-02-11T16:38:16.110Z","repository":{"id":269255336,"uuid":"906722617","full_name":"RyomenDev/healthbridge","owner":"RyomenDev","description":"HealthBridge is an innovative platform connecting doctors and patients seamlessly. It offers appointment scheduling, virtual consultations, medical records management, and personalized care, ensuring efficient, accessible, and secure healthcare solutions.","archived":false,"fork":false,"pushed_at":"2024-12-25T14:43:23.000Z","size":1745,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T14:56:10.749Z","etag":null,"topics":["expressjs","firebase","firebase-auth","mongodb","mongoose","nodejs","reactjs","redux-persist","redux-toolkit","retellai","stripe","stripe-payments","vite"],"latest_commit_sha":null,"homepage":"https://healthbridge-izls.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RyomenDev.png","metadata":{"files":{"readme":"readMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-12-21T17:59:45.000Z","updated_at":"2024-12-25T14:45:10.000Z","dependencies_parsed_at":"2024-12-22T07:27:28.606Z","dependency_job_id":"677a70a6-4d98-4220-b52e-06e9def3b555","html_url":"https://github.com/RyomenDev/healthbridge","commit_stats":null,"previous_names":["ryomendev/healthbridge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyomenDev%2Fhealthbridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyomenDev%2Fhealthbridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyomenDev%2Fhealthbridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyomenDev%2Fhealthbridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyomenDev","download_url":"https://codeload.github.com/RyomenDev/healthbridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243979212,"owners_count":20378172,"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":["expressjs","firebase","firebase-auth","mongodb","mongoose","nodejs","reactjs","redux-persist","redux-toolkit","retellai","stripe","stripe-payments","vite"],"created_at":"2025-01-23T14:56:15.990Z","updated_at":"2026-02-11T16:38:11.070Z","avatar_url":"https://github.com/RyomenDev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# HEALTHBRIDGE: Care bridge to better healthcare\n### 1. User Authentication\n#### Objective:\nProvide a secure and seamless authentication system for doctors using Firebase Authentication. Doctors can log in or sign-in using Google.\n________________________________________\n####  Approach:\nFirebase Authentication Integration:\n•\tGoogle Login: Use Firebase's built-in Google Authentication for a quick and reliable sign-in experience.\nFlow:\n1.\tGoogle Login:\no\tFirebase Authentication is integrated with Google Sign-In.\no\tWhen a doctor logs in, Firebase generates a unique ID token for authentication.\no\tThe front end sends this token with API requests for user identification.\n2.\tToken Management:\no\tFirebase ID tokens are included in each API request header (Authorization: Bearer \u003cFirebase Token\u003e).\no\tThe server validates these tokens using Firebase Admin SDK.\n\n### 2. Patient Onboarding\nObjective:\nCollect essential patient details securely, including personal and medical information.\n________________________________________\n#### Implementation Details:\nAuthentication and Initial Login:\n•\tUse Firebase Authentication to handle user registration and login.\n•\tUpon successful login, basic user data (e.g., email, UID, displayName) will be fetched from Firebase and stored in the database for reference.\n________________________________________\n#### Schema Design:\n•\tDatabase: Use MongoDB for patient records for scalability and flexibility.\n•\tPatient Table Schema:\no\tFields include:\n\tfirebaseUID: Link to the Firebase user.\n\tname, age, gender, contactDetails, medicalHistory, and allergies.\n\tOptional fields for future enhancements, such as profilePicture etc.\n________________________________________\n#### Form Design:\n•\tFrontend:\no\tBuild a patient form using React.\no\tPre-fill fields like email and UID using data fetched from Firebase.\no\tEnable updating additional fields (e.g., medical history) through a dedicated Profile Page.\n•\tAPI Integration:\no\tThe form will connect to a secure API endpoint to create or update patient records in MongoDB.\n________________________________________\n####  Data Validation:\n•\tUse backend validation with Express-validator to ensure all required fields are accurate and complete.\n•\tFrontend validation for real-time feedback to the user.\n________________________________________\n#### Secure Submission:\n•\tData Transmission: Use HTTPS for encrypted communication.\n•\tToken-Based Security:\no\tLeverage Firebase Tokens instead of JWT for authenticating API requests.\no\tVerify the Firebase token on the backend to ensure requests are secure and associated with authenticated users.\n________________________________________\n#### API Endpoints:\n•\tPOST /api/patients: Create or update a patient record.\n•\tGET /api/patients: Retrieve all patient records.\n•\tPUT /api/patients/:patientId: Update specific patient by their Firebase UID.\n•\tDELETE /api/patients/:patientId: Update specific patient by their Firebase UID.\n\n### 3. Dashboard with AI Caller Integration\n#### Objective:\nBuild a comprehensive dashboard that displays patient analytics and integrates Retell AI Caller for handling patient-related inquiries.\n________________________________________\n#### Features:\nPatient Overview Analytics\n1.\tCommon Medical Conditions:\no\tAnalyze patient records to identify and display the most frequently reported medical conditions.\n2.\tRecent Patient Onboarding:\no\tFetch and display the most recently onboarded patients, sorted by creation date.\no\tInclude details like name, age, and onboarding date for quick reference.\n________________________________________\n#### Retell AI Caller Integration\n1.\tRetell AI SDK Setup:\no\tInstall the SDK:\nnpm install @retellai/sdk\no\tInitialize the SDK in the backend:\n\tConfigure the Retell AI API key and settings during initialization.\n\tSet up environment variables for sensitive credentials.\n2.\tAPI Endpoints:\no\tPOST /api/ retellai:\n\tInitiates an AI-powered call for patient-related queries, such as appointment reminders or follow-ups.\n3.\tAI Caller Interaction on Dashboard:\no\tChatbox Integration:\n\tAdd a text-based AI chatbox to the dashboard for answering common clinic-related queries like working hours, contact details, or doctor availability.\no\tVoice Assistant:\n\tProvide a voice-based interface where users can speak their questions.\n\tUse Retell AI's voice recognition capabilities to process and respond.\n________________________________________\n#### Benefits of Retell AI:\n•\tHelps in resolving patient and clinic queries efficiently.\n•\tSupports both basic informational queries (e.g., working hours, location) and advanced patient-specific interactions (e.g., appointment scheduling).\nFuture Enhancements:\n•\tExtend AI capabilities to provide personalized medical advice based on patient history.\n•\tUse AI insights to improve patient engagement and clinic workflows.\n\n### 4. Stripe Payment Integration\nObjective: Implement a secure payment system for doctors to pay a $100 platform fee.\n________________________________________\n#### Setup\n1.\tInstall Stripe: Add Stripe to the project and configure API keys in environment variables.\n2.\tEnvironment Configuration: Store sensitive Stripe keys securely to ensure secure payment processing.\n________________________________________\n#### Payment Flow\nFrontend\n1.\tUse Stripe Elements to create a user-friendly and secure payment form to collect payment details.\n2.\tInclude form validation to ensure accurate and complete input.\n3.\tUpon successful payment, communicate with the backend to finalize the process and store payment data.\nBackend\n1.\tCreate an endpoint to handle payment processing securely using Stripe’s paymentIntents API.\n2.\tValidate payment information, process transactions, and return a response to the frontend.\n3.\tSave payment details in the database, including payment date, amount, and status.\n________________________________________\nPayment Confirmation\n1.\tDisplay a payment confirmation screen summarizing the transaction details for the user.\n2.\tSend a confirmation email to the user upon successful payment.\n________________________________________\nKey Features\n•\tSecurity: Use Stripe’s PCI-compliant infrastructure for safe transactions.\n•\tTransparency: Maintain clear and reliable payment records in the database.\n•\tUser Experience: Provide smooth payment interactions with responsive forms and detailed feedback.\n\n### 5. UI/UX Design\nObjective: Create a user-friendly and intuitive interface for the patient onboarding form and the dashboard, ensuring a smooth experience for both patients and doctors.\n________________________________________\n#### Patient Onboarding Form\n1.\tClean Layout:\no\tUse Tailwind CSS to create a responsive and modern form layout.\no\tEnsure the form elements are well-spaced, easy to navigate, and mobile-friendly.\no\tGroup related fields together (e.g., personal info, medical history) for better readability.\n2.\tInput Validation:\no\tImplement inline error messages that appear when a user submits invalid or incomplete fields.\no\tDisplay helpful, concise error messages next to the relevant input fields.\no\tUse real-time validation where possible, highlighting errors as the user types.\n3.\tSecure Data Entry:\no\tUse secure input fields (e.g., password fields for sensitive information).\n________________________________________\n#### Dashboard\n1.\tPatient Information:\no\tAnalytics: Display patients' data in an organized, easy-to-read format.\no\tShow key patient statistics such as the total number of patients, the most common medical conditions, and recent onboarding.\no\tUse charts or tables to display analytics with filtering and sorting options.\n2.\tCRUD Operations:\no\tAllow doctors or admins to create, read, update, and delete patient records.\no\tEach patient’s record should be displayed with options for editing or deleting.\no\tProvide confirmation modals or notifications when actions like deleting or updating patient records occur.\n3.\tAI Chatbot:\no\tAI Caller Integration: Add an interactive chatbot interface where users can ask questions about the clinic, appointment scheduling, and more.\no\tUse the Retell AI Caller for seamless conversation, allowing users to interact with the bot through text or voice.\no\tKeep the chat interface simple with clear call-to-action buttons, and display previous interactions for user convenience.\n________________________________________\n####  General Design Considerations\n•\tConsistency: Maintain a consistent design style across the entire application (e.g., button styles, font choices, and spacing).\n•\tResponsive Design: Ensure the application adapts seamlessly across different screen sizes using Tailwind CSS breakpoints.\n•\tUser Feedback: Provide real-time feedback on user actions (e.g., success or error messages after submitting forms or saving data).\n\n\n\n## Project Folder Structure\n\n```\nproject-root/\n├── client/\n│   ├── public/\n│   │   ├── index.html\n│   │   └── ... (other static files like favicon, manifest, etc.)\n│   ├── src/\n│   │   ├── api/                                                         # API integration files\n│   │   │   ├── authApi.jsx\n│   │   │   ├── doctorApi.jsx\n│   │   │   ├── retellAi.jsx\n│   │   │   ├── stripeApi.jsx\n│   │   │   ├── userApi.jsx\n│   │   │   └── index.jsx\n│   │   ├── assets/\t\t\t\t# Images, logos, fonts, etc.\n│   │   │   └── ... (images, logos, fonts)\n│   │   ├── conf/\n│   │   │   ├── conf.jsx\n│   │   │   ├── firebase-conf.jsx\n│   │   │   ├── retellAi-conf.jsx\n│   │   │   └── stripe-conf.jsx\n│   │   ├── data/\t\t\t\t# Data for website\n│   │   │   ├── MainData.jsx\n│   │   │   ├── navBarData.jsx\n│   │   │   ├── patientFormData.jsx\n│   │   │   ├── PaymentCancelData.jsx\n│   │   │   ├── PaymentSuccessData.jsx\n│   │   │   └── PremiumData.jsx\n│   │   ├── firebase/\n│   │   │   ├── firebase-config.jsx\n│   │   ├── layout/\n│   │   │   ├── index.jsx\n│   │   ├── components/\t\t\t# UI components\n│   │   │   ├── Footer/\n│   │   │   │   └── Footer.jsx\n│   │   │   ├── Header/\n│   │   │   │   ├── Header.jsx\n│   │   │   │   ├── LogoutBtn.jsx\n│   │   │   │   └── Navbar.jsx\n│   │   │   ├── Home/\n│   │   │   │   ├── ActionOption.jsx\n│   │   │   │   ├── Carousel.jsx\n│   │   │   │   └── Motive.jsx\n│   │   │   ├── PatientsRecords/\n│   │   │   │   ├── PatientDetails.jsx\n│   │   │   │   ├── PatientForm.jsx\n│   │   │   │   ├── PatientItem.jsx\n│   │   │   │   └── PatientList.jsx\n│   │   │   ├── Profile/\n│   │   │   │   ├── ProfileDetails.jsx\n│   │   │   │   ├── ProfileForm.jsx\n│   │   │   │   ├── ProfilePage.jsx\n│   │   │   │   └── AuthLayout.jsx\n│   │   ├── pages/\t\t\t\t# Pages of website\n│   │   │   ├── Home.jsx\n│   │   │   ├── Login.jsx\n│   │   │   ├── PatientsRecords.jsx\n│   │   │   ├── Payment.jsx\n│   │   │   └── UserProfile.jsx\n│   │   ├── retellAi/\n│   │   │   ├── RetellAi.jsx\n│   │   │   └── RetellAIConnect.jsx\n│   │   ├── routes/\t\t\t\t# Routes\n│   │   │   └── index.jsx\n│   │   ├── store/\n│   │   │   ├── authSlice.js\n│   │   │   └── store.js\n│   │   ├── stripe/\n│   │   │   ├── PaymentCancel.jsx\n│   │   │   ├── PaymentForm.jsx\n│   │   │   └── PaymentSuccess.jsx\n│   │   ├── utils/\n│   │   │   ├── authUtils.jsx\n│   │   │   └── handleApiError.jsx\n│   │   ├── App.jsx\n│   │   ├── index.css\n│   │   └── main.jsx\n│   ├── .env\n│   ├── .gitignore\n│   ├── package.json\n│   └── README.md\n```\nKey Points:\n•\tclient/: Contains all the client-side code for your React application.\n•\tpublic/: Stores static files accessible by the browser.\n•\tsrc/: Contains the source code for your React application.\n•\tapi/: Houses files for interacting with various APIs.\n•\tassets/: Stores images, logos, fonts, and other visual assets.\n•\tauth/: Contains authentication-related files and configurations.\n•\tData/: Contains static data used by the application.\n•\tFireBase/: Contains components and configuration related to Firebase.\n•\tLayout/: Contains components for the main application layout.\n•\tcomponents/: Houses reusable React components organized by functionality.\n•\tpages/: Contains components for different pages within the application.\n•\tRetellAi/: Contains components or logic specific to the RetellAi platform.\n•\troutes/: Contains routing configuration for the application.\n•\tstore/: Contains Redux store configuration and slices.\n•\tStripe/: Contains components related to Stripe payment integration.\n•\tutils/: Contains utility functions and helper components.\n•\tApp.jsx: The main application component.\n•\tindex.css: Global CSS styles.\n•\tmain.jsx: The entry point for the application.\n•\t.env: Stores environment variables.\n•\t.gitignore: Specifies files to be ignored by Git.\n•\tpackage.json: Lists project dependencies and scripts.\n•\tREADME.md: Provides project description and instructions.\n\n```\n├── server/\n│   ├── conf/\n│   │   ├── conf.js\n│   │   ├── firebase-admin-config.js\n│   │   ├── retellAi-conf.js\n│   ├── conf/\n│   │   ├── index.js\n│   ├── auth/\n│   │   ├── index.js\n│   ├── controllers/\n│   │   ├── patient.controller.js\n│   │   ├── payment.controller.js\n│   │   ├── retellai.controller.js\n│   │   └── subscription.controller.js\n│   │   └── user.controller.js\n│   ├── models/\n│   │   ├── doctor.models.js\n│   │   ├── patient.models.js\n│   │   └── user.models.js\n│   ├── routes/\n│   │   ├── auth.routes.js\n│   │   ├── index.js\n│   │   ├── patient.routes.js\n│   │   └── retellai.routes.js\n│   │   ├── stripe.routes.js\n│   │   ├── user.routes.js \n│   ├── middlewares/\n│   │   ├── auth.middleware.js\n│   ├── utils/\n│   │   ├── index.js\n│   ├──index.js\n│   ├── .env\n│   ├── .gitignore\n│   ├── package.json\n│   └── README.md\n```\n\nExplanation:\n•\tserver/: The root directory of the server-side code.\n•\tnode_modules/: Contains dependencies installed using npm or yarn.\n•\tsrc/: Contains the source code for the application. \no\tauth/: Likely contains authentication-related logic.\no\tconf/: Contains configuration files.\no\tcontrollers/: Contains controller functions that handle business logic and interact with models.\no\tdb/: Contains database-related logic.\no\tmiddlewares/: Contains middleware functions that can be used to modify requests and responses.\no\tmodels/: Contains data models that define the structure of data.\no\troutes/: Contains route definitions that map HTTP requests to specific controllers or handlers.\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryomendev%2Fhealthbridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryomendev%2Fhealthbridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryomendev%2Fhealthbridge/lists"}