MamaCare CAD is an offline-first Progressive Web App designed for rural midwives in low-resource settings. It combines local clinical protocols with optional AI-assisted insights to instantly triage maternal health risks, analyze fetal biometry, and track patient sessions locally.
# MamaCare CAD
### Offline-first Maternal Health Computer-Aided Diagnosis Tool
A lightweight Progressive Web App (PWA) for midwives and general practitioners at rural clinics in Sub-Saharan Africa and other low-resource settings. Works fully offline after first load. Installs to Android/iOS home screen like a native app.
---
## What it does
| Module | Offline | AI-enhanced (online) |
|---|---|---|
| Fetal biometry analysis (BPD, HC, AC, FL Z-scores) | ✅ | ✅ |
| Risk triage (FHR, AFI, BP, presentation, placenta) | ✅ | ✅ |
| WHO danger signs checklist (14 signs) | ✅ | — |
| Session log — 100 patients, local storage only | ✅ | — |
| Biometry reference tables (Hadlock/WHO) | ✅ | — |
| AI clinical narrative (Claude Sonnet) | — | ✅ |
---
## Deploy to Netlify (2 minutes)
### Option A — Drag and drop
1. Go to app.netlify.com
2. Drag this entire folder onto the deploy zone
3. Done — live in ~30 seconds
### Option B — CLI
```bash
npm install -g netlify-cli
netlify login
netlify deploy --prod --dir .
```
### Option C — GitHub
1. Push this folder to a GitHub repository
2. In Netlify: New site → Import from Git → select repo
3. Build command: *(leave blank)* · Publish directory: `.`
---
## Using the AI features
The app calls the **Google Gemini API** (`gemini-1.5-flash`) for AI clinical summaries.
Because this is an offline-first, client-only application, the API key is handled directly in the browser to maintain the user's privacy and avoid server round-trips:
1. Go to the **Reference** tab in the app.
2. Enter your **Google Gemini API Key** in the "About & Settings" section.
3. The key is securely saved in your browser's local storage and is only transmitted directly to Google's API when generating a clinical summary.
No backend proxy or serverless function is required.
---
## Offline behaviour
After the first visit, the service worker caches:
- `index.html`
- `offline.html`
- `manifest.json`
- Icons
All clinical logic (biometry Z-scores, AFI/FHR/BP threshold …