# Africa Shield AI
**Big vision:** Africa Shield AI predicts natural disasters (floods,
droughts, heatwaves, wildfires, cyclones, earthquakes) across Africa and
sends early warnings to at-risk communities before disasters happen,
prioritizing accessibility for people without smartphones or reliable
internet. **Scoped hackathon demo:** "Last-Mile Alert AI" — flooding
only, working end-to-end: a rules-based flood risk score shown alongside
a genuine trained ML model as a second opinion, an API that turns the
result into a human-readable alert, translation into a local African
language, and a simulated SMS/USSD/WhatsApp send, all shown on a simple
web dashboard. **Future:** expand to the other hazards, train the ML
model on real historical data instead of synthetic data, a real SMS
gateway, and an offline-first mobile app (see
Future Improvements below).
Built for the **"AI for All Hackathon: Building Inclusive Solutions for
Early Warning and Disaster Resilience,"** organized by the African Youth
Advisory Board on Disaster Risk Reduction (AYAB-DRR) under the African Union.
## Status: backend logic real, frontend in progress (updated 2026-08-10)
- **Backend risk scoring and translation are real**, not stubbed.
`POST /api/risk-check` and `GET /api/regions` compute live from the
rules-based model in `backend/app/models/risk_model.py` and the
hardcoded translation dictionary in `backend/app/models/translations.py`.
See `docs/progress-log.md` for thresholds,
assumptions, and what's still unverified.
- **A second, genuinely trained ML model now runs alongside the
rules-based one** (`ml_risk_level`/`ml_risk_score`, additive fields on
both endpoints) — a `scikit-learn` logistic regression, trained on
synthetic data standing in for real historical flood data. See
`docs/architecture.md`'s "Two risk scores, on
purpose" section for why both are kept.
- `GET /api/alerts` is **still an intentional simulated stub** — no real
SMS/USSD gateway this week (documented future improveme …