NuruCare - AI-powered contraceptive decision-support platform for Sub-Saharan Africa
# NuruCare
## AI-Powered Contraceptive Decision-Support Platform for Sub-Saharan Africa
> *"Nuru" means "Light" in Swahili illuminating informed contraceptive choices.*
## Overview
NuruCare is an ethical, explainable AI platform that helps individuals in Sub-Saharan Africa make safer, personalized and informed contraceptive choices based on their health profiles, preferences and reproductive goals. The project prioritizes privacy, safety and accessibility.
## Features
- ✅ **Intelligent Intake Form** - Structured 8-step health questionnaire
- ✅ **WHO MEC Safety Rules** - Clinical guardrails (WHO Medical Eligibility Criteria 2024)
- ✅ **RAG + Gemini Flash** - Personalized, context-aware recommendations
- ✅ **Multilingual** - English + Swahili support
- ✅ **Offline Capable** - PWA with service workers
- ✅ **Privacy First** - Cryptographic sync tokens, 15-min nurse keys, anonymous profiles
- ✅ **Partner Sync** - Token-based anonymous partner profile linking
- ✅ **Nurse Handoff** - Secure temporary nurse access with time-limited session keys
## Tech Stack
| Layer | Technology |
|-------|------------|
| Frontend | React 19 + Tailwind CSS + Vite + PWA |
| Backend | FastAPI (Python 3.11) |
| Database | PostgreSQL (with pgvector) + Supabase (optional hosted option) |
| AI | Google Gemini Flash API |
| Deployment | Docker + Docker Compose + Nginx |
| CI/CD | GitHub Actions |
## Project Structure
```
nurucare/
├── backend/ # FastAPI backend application
│ ├── api/
│ │ ├── endpoints/ # API route definitions (intake, sync, etc.)
│ │ │ ├── __init__.py
│ │ │ ├── intake.py # Intake-related endpoints
│ │ │ └── sync.py # Partner sync token endpoints (separate from main.py)
│ │ ├── schemas/ # Pydantic models for API payloads
│ │ │ ├── __init__.py
│ │ │ └── profile.py # Profile data schemas
│ │ └── __init__.py
│ ├── db/ # Database utilities
│ │ ├── __init__.py
│ │ ├── databa …