Inspiration
Vaccination management is still surprisingly manual in many clinics. Patients often forget booster schedules, do not know eligibility rules, and lose track of vaccination history. Clinics, on the other hand, must manually check risk factors and age rules before reaching out.
We wanted to build a lightweight backend-first system that models this decision process and prioritizes outreach intelligently instead of treating all patients equally.
What it does
CareConnect simulates a clinic vaccination system with two interfaces:
- Patient Portal – Patients can view vaccines taken and vaccines due.
- Staff Dashboard – Clinics see a ranked priority list of patients based on urgency.
Each patient is assigned:
- Age
- Risk factors
- Vaccination history
- A computed priority score
Patients are ranked using a heap-based priority queue so that the highest urgency patients appear first.
How we built it
The system is structured into three core layers:
careConnect.py– Generates patient profiles and due vaccinesscoring.py– Computes urgency scoresmain.py– FastAPI application with Jinja templating
We compute a patient priority score as:
$$ Score = AgeWeight + RiskWeight + VaccinationGapWeight $$
Where:
- Seniors and young children receive higher base weights
- Immunocompromised patients receive the largest risk bonus
- Fewer vaccines taken increases urgency
We then push patients into a max-priority heap using:
$$ Priority = -Score $$
This ensures efficient ranking in ( O(n \log n) ) time.
The frontend is rendered using HTML + CSS with Jinja templates, while FastAPI handles routing and form submissions.
Challenges we ran into
- Preventing duplicate vaccines between "taken" and "due"
- Designing a scoring system that felt realistic but remained simple
- Managing Git and remote conflicts during deployment
- Connecting backend logic cleanly to Jinja templates without leaking raw objects
One subtle issue was ensuring due vaccines were computed as:
$$ Due = AllVaccines - TakenVaccines $$
instead of randomly sampling from the full vaccine list.
Accomplishments we are proud of
- Clean backend separation of concerns
- Working priority queue implementation
- Dynamic ranking system
- Functional two-role interface (patient + staff)
- Fully deployed GitHub repository
What we learned
- Backend-first architecture simplifies iteration
- Priority queues are powerful for healthcare-style triage problems
- FastAPI + Jinja is a fast way to build full-stack MVPs
- Clean Git workflow matters as much as clean code
We also learned how small modeling choices dramatically affect system behavior, especially when designing weighted scoring systems.
What’s next for CareConnect
- Replace random vaccine assignment with rule-based eligibility
- Integrate real vaccination schedules
- Add persistent storage instead of in-memory simulation
- Implement authentication and role-based access
- Improve scoring transparency for explainability
Our long-term goal is to evolve CareConnect from a hackathon MVP into a rule-driven clinical support tool.
Log in or sign up for Devpost to join the conversation.