A smart vaccine eligibility and reminder system — analyzes patient age, medical history, and risk factors to determine eligibility, detect overdue immunizations, send reminders, and answer vaccine questions via an AI assistant.
devHack2026/
├── backend/ # Python FastAPI — eligibility engine, patient CRUD, reminders, RAG assistant
├── web/ # React + Vite + Tailwind — clinic/admin/patient web UI
└── mobile/ # React Native + Expo — patient-facing mobile app
| Tool | Version | Notes |
|---|---|---|
| Python | 3.9+ | |
| Node.js | 18+ | |
| Tesseract OCR | 5.x | For PDF text extraction via OCR |
| Poppler | latest | Required by pdf2image for OCR |
| Expo Go | latest | Only needed for mobile |
winget install UB-Mannheim.TesseractOCR
winget install oschwartz10612.PopplerCreate a file at backend/.env with the following keys:
# SendGrid (email reminders)
SENDGRID_API_KEY=your_sendgrid_api_key
SENDGRID_FROM_EMAIL=your_verified_sender@example.com
# Twilio (SMS reminders)
TWILIO_ACCOUNT_SID=your_twilio_account_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token
TWILIO_MESSAGING_SERVICE_SID=your_twilio_messaging_service_sid
# HuggingFace (embedding model download)
HF_TOKEN=your_huggingface_token
# Groq (AI assistant LLM)
GROQ_API_KEY=your_groq_api_keyGet your free keys at:
- Groq: https://console.groq.com
- HuggingFace: https://huggingface.co/settings/tokens
- SendGrid: https://sendgrid.com
- Twilio: https://twilio.com
cd backend
# Create and activate virtual environment
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
# Install dependencies
pip install -r requirements.txt
# Ingest knowledge base PDFs into the vector store (run once, or after adding new PDFs)
# Place your PDF files in: backend/app/data/knowledge/
python manage.py ingest --reset
# Start the API server
uvicorn main:app --reload --port 8000API docs: http://localhost:8000/docs
cd web
npm install
npm run devApp: http://localhost:3000 (or the next available port shown in the terminal)
cd mobile
npm install
npx expo start --tunnelScan the QR code with Expo Go (iOS/Android) or press w to open in browser.
| Route | Access | Description |
|---|---|---|
/ |
Doctor | Dashboard — stats, urgent patients |
/patients |
Doctor | Patient list, search, CSV import |
/patients/:id |
Doctor | Eligibility check, timeline, reminders |
/reminders |
Doctor | All system reminders |
/admin |
Doctor | Send/clear reminders in bulk |
/my-vaccines |
Patient | Personal vaccine profile |
/assistant |
All | AI vaccine Q&A assistant |
A floating ♿ button (bottom-right corner) lets any user adjust:
- Text size — 4 levels (small → extra large)
- Colour mode — Default, High Contrast, Red-Green Safe (protanopia), Blue-Yellow Safe (tritanopia)
Settings are saved to localStorage and persist across sessions.
- Answers vaccine questions grounded in uploaded PDF knowledge base
- Powered by Groq (llama-3.3-70b) + ChromaDB vector store
- Shows source citations (document name + page number) with every answer
- Add more PDFs to
backend/app/data/knowledge/and re-runpython manage.py ingest --reset
- Infant (Emma, 20 months) — overdue DTaP doses, age-based eligibility
- Adult with conditions (James, 39) — diabetes + cardiac → flu/COVID priority
- Pregnant HCW (Sarah, 34) — contraindicated MMR, recommended flu
- Senior immunocompromised (Robert, 69) — shingles, pneumococcal, overdue boosters
- CSV Import — upload 5 new patients, show instant eligibility
- Reminder Flow — generate email/SMS for overdue patient, simulate send
- AI Assistant — ask "What vaccines are free of charge?" and see cited answers