This is a civic tech platform for Nigeria's election incident monitoring.
# Revoda — Election Incident Dashboard
### EiE Nigeria · Civic Intelligence Platform
> *"O God of creation, direct our noble cause."*
---
## What Is Revoda?
Revoda is a civic technology platform that transforms citizen reports and observer data into **verified, actionable election intelligence**. It is not an election management body — it makes election problems impossible to ignore through trusted documentation, transparent verification, structured escalation, and lasting institutional memory.
---
## Project Structure
```
revoda/
├── backend/ # Python FastAPI backend
│ ├── main.py # API routes + WebSocket
│ ├── models.py # Pydantic data models
│ ├── auth.py # JWT partner authentication
│ ├── anonymizer.py # Reporter identity protection
│ ├── hotspot.py # PostGIS cluster detection
│ ├── notifier.py # Email + SMS escalation alerts
│ └── requirements.txt
│
├── database/
│ └── schema.sql # PostgreSQL + PostGIS schema
│
├── mobile/
│ └── report.html # PWA citizen report form (works offline)
│
└── docker-compose.yml # Full local dev stack
```
---
## Tech Stack
| Layer | Technology | Why |
|-------|-----------|-----|
| **Backend API** | Python + FastAPI | Async, fast, type-safe; easy ML integration |
| **Database** | PostgreSQL + PostGIS | Geospatial queries, clustering, 37-state hierarchy |
| **Cache / Realtime** | Redis + WebSockets | Live dashboard feed, hotspot alerts |
| **Frontend Dashboard** | React + TypeScript | Interactive map, real-time state |
| **Map** | Leaflet.js + OpenStreetMap | Free, offline-capable, Nigeria-specific data |
| **Mobile** | PWA (HTML/JS) | Works on Android without app store — critical for Nigeria |
| **SMS Fallback** | Africa's Talking API | Feature phone users can submit via USSD/SMS |
| **Hosting** | AWS + Cloudflare | DDoS protection for election day traffic spikes |
| **Background Jobs** | Celery + Redis | Scheduled hotspot s …