Project Info
π©Ί Project Story: Cura About the Project Cura is an AI-powered medical voice assistant designed to make healthcare more accessible and responsive. It listens to patient symptoms, provides personalized guidance, connects users to doctors, and schedules appointments β all through natural, human-like conversation. We were inspired by how difficult it can be to access immediate medical advice, especially when clinics are overwhelmed or unavailable. Our goal was to create an intelligent assistant that supports both patients and healthcare professionals by automating symptom triage, appointment scheduling, and follow-up care. Through building Cura, we learned how to integrate real-time voice AI, generative language models, and healthcare data systems into one cohesive workflow. We explored challenges in conversational design, natural language understanding, and securely managing patient interactions. Curaβs architecture combines: ποΈ LiveKit Agents β for real-time voice calls and natural dialogue ποΈ LiveKit Agents β for real-time voice calls and natural dialogue βοΈ FastAPI and MongoDB β for backend data storage and healthcare logic βοΈ FastAPI and MongoDB β for backend data storage and healthcare logic π§ Chroma β as a vector database for symptom similarity search and matching, which diagnose patient's issue and give advice based on healthcare service's internal data π§ Chroma β as a vector database for symptom similarity search and matching, which diagnose patient's issue and give advice based on healthcare service's internal data π CreaoAI β for intelligent scheduling and calendar integration π CreaoAI β for intelligent scheduling and calendar integration π» Creao (React web) and Swift (mobile) β for patient and provider dashboards π» Creao (React web) and Swift (mobile) β for patient and provider dashboards Gmail API for appointment booking confirmation * Gmail API for appointment booking confirmation * Challenges Faced Building Cura presented several key challenges: Designing natural and empathetic voice conversations that adapt to user tone and intent Designing natural and empathetic voice conversations that adapt to user tone and intent Managing speech latency for real-time responses Managing speech latency for real-time responses Algorithm to match the most similar symptoms from user's input. We separate each symptom from healthcare data and embed each of them to count the number of matching symptoms and get average cosine similarity that receives best result * Algorithm to match the most similar symptoms from user's input. We separate each symptom from healthcare data and embed each of them to count the number of matching symptoms and get average cosine similarity that receives best result * Structuring a scalable database that connects patients, clinicians, and appointment data Structuring a scalable database that connects patients, clinicians, and appointment data Integrating multiple APIs (LiveKit, Chroma, Gmail) into a seamless workflow Integrating multiple APIs (LiveKit, Chroma, Gmail) into a seamless workflow Ensuring that AI-generated responses remain medically cautious and privacy-aware Ensuring that AI-generated responses remain medically cautious and privacy-aware Despite these challenges, we successfully created a working prototype that listens to patients, identifies symptoms, connects them with doctors, and schedules appointments β all through an intelligent voice interface.
Prerequisites
- Python 3.13 or newer.
Installing uv and running the agent
To check if uv is installed, run:
uv --version
Environment variables
# .env.local example
LIVEKIT_API_KEY=your_livekit_key
LIVEKIT_API_SECRET=your_livekit_secret
LIVEKIT_URL=your_livekit_url
NEXT_PUBLIC_LIVEKIT_URL=your_livekit_url
# any other vars your environment needs
Adjust names and values according to your runtime configuration.
How to run the agent
Install library:
uv sync
Run the agent script:
uv run src/agent.py dev
Analysis
View
Metric
- 5
- 3
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- PythonIn code
- FastAPIClaimed
- MongoDBClaimed
- SwiftClaimed
1 of 4 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
83 KB
Source files
16
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
hongdnn/healthcare_ai_backend
21 files Β· 579 KB Β· @ 1c1ce3b
Structure
Application logic
14 files Β· 67%Domain rules, services and shared utilities.
Data & schema
3 files Β· 14%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here β open the file browser to check anything the diagram implies.
Languages
- Python83%
- XML16%
- Markdown1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
pyproject.toml
pypi Β· 12- chromadb
- dateparser
- faker
- fastapi[standard]
- livekit-agents[silero,turn-detector]
- livekit-plugins-noise-cancellation
- openpyxl
- pandas
- pymongo
- python-dotenv
- resend
- uvicorn[standard]
Declared in the repositoryβs manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Agent runnable via uv (setup instructions)Verified
Run the agent script with `uv run src/agent.py dev`
Claimed on readmehigh confidencesrc/agent.py:297β agent.py defines entrypoint and calls agents.cli.run_app, matching the CLI-runnable pattern described in the READMEpyproject.toml:1β project uses uv-style pyproject.toml with pinned dependencies for the described 'uv sync' / 'uv run' workflow
Appointment scheduling / calendar integrationVerified
Connects users to doctors and schedules appointments through the assistant
Claimed on Devposthigh confidencesrc/agent.py:100β book_appointment tool creates/reschedules appointments via mongo_service.create_appointmentsrc/db/mongo_service.py:67β create_appointment inserts a calendar record with conflict-window checking against a fixed doctor_idsrc/main.py:78β /calendar/user and /calendar/doctor endpoints expose scheduled appointments
Chroma vector database for symptom similarity searchVerified
Chroma as a vector database for symptom similarity search and matching using cosine similarity averaging
Claimed on Devposthigh confidencesrc/chroma/chroma_service.py:20β ChromaService uses chromadb.CloudClient and a health_issues collectionsrc/chroma/chroma_service.py:49β query() embeds each symptom, aggregates distances per health issue, and averages them, matching the described cosine-similarity matching algorithm
FastAPI + MongoDB backend for healthcare logicVerified
FastAPI and MongoDB for backend data storage and healthcare logic
Claimed on Devposthigh confidencesrc/main.py:18β FastAPI app connects to MongoDB (AsyncMongoClient) and exposes login/calendar/conversations endpointssrc/db/mongo_service.py:14β MongoService wraps pymongo for users, calendar (appointments), and conversations collections
Follow-up / feedback calls after appointmentsVerified
Automating follow-up care via voice calls to check on patient recovery
Claimed on Devposthigh confidencesrc/feedback_agent.py:19β FeedbackAgent places an outbound SIP call one week after appointment to ask about recovery and records feedbacksrc/trigger_feedback_call.py:9β trigger_feedback_call dispatches the feedback agent via LiveKit agent dispatch for a given phone number/appointment
Natural language date/time parsing for appointmentsVerified
Assistant understands natural language time expressions like 'tomorrow 3pm' to schedule appointments
Claimed on Devposthigh confidencesrc/agent.py:30β parse_datetime tool uses dateparser to convert natural language into an ISO8601 timestamp
Real-time voice assistant via LiveKit AgentsVerified
LiveKit Agents for real-time voice calls and natural dialogue
Claimed on Devposthigh confidencesrc/agent.py:237β AgentSession created with stt/llm/tts/vad and started against a LiveKit room, with a MainAssistant Agent handling the conversationpyproject.toml:10β livekit-agents and noise-cancellation plugin declared as dependencies
Symptom triage / diagnosis via voice conversationVerified
Listens to patient symptoms and provides personalized guidance through natural conversation
Claimed on Devposthigh confidencesrc/agent.py:50β symptom_check_api function_tool extracts symptoms from user speech and queries Chroma for a matching issue/recommendationsrc/agent.py:163β Agent instructions direct the LLM to ask how the user feels and call symptom_check_api
Gmail API for appointment booking confirmation emailsCode-supported
Gmail API used to send appointment booking confirmation emails
Claimed on Devpostmedium confidencesrc/main.py:147β /email endpoint sends confirmation emails, but via smtplib SMTP_SSL to smtp.gmail.com with a username/password login, not the Gmail API (OAuth-based REST API)src/agent.py:144β book_appointment posts to the /email endpoint to trigger the confirmation email after booking
Patient/provider login and dashboards backed by APICode-supported
Patient and provider dashboards for symptom/appointment data
Claimed on readmemedium confidencesrc/main.py:62β /login, /calendar/user, /calendar/doctor, /conversations endpoints provide data a dashboard would consume, but no dashboard frontend code exists in this repo
Creao (React web) and Swift (mobile) dashboardsClaimed only
Creao (React web) and Swift (mobile) for patient and provider dashboards
Claimed on Devposthigh confidenceCreaoAI for intelligent scheduling and calendar integrationClaimed only
CreaoAI used for intelligent scheduling and calendar integration
Claimed on Devposthigh confidence
An AI agent derived these features from the projectβs Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.