A GIS-based public health surveillance web application for tracking Malaria, TB, and HIV across Kenya's 47 counties, built for three distinct user roles: **Public Health Official**, **Epidemiologist**, and **Policy Maker**.
# GeoHealth Kenya
A GIS-based public health surveillance web application for tracking Malaria, TB, and HIV across Kenya's 47 counties, built for three distinct user roles: **Public Health Official**, **Epidemiologist**, and **Policy Maker**.
The system combines interactive county-level mapping, disease case reporting, hotspot risk analysis, and exportable policy briefs — all served from a dependency-free Python backend.
## Features
- **Role-based dashboards** — separate interfaces for reporting cases, analyzing epidemiological risk, and generating policy recommendations
- **Interactive GIS mapping** — Leaflet-based choropleth maps of Kenya's county boundaries, colored by disease intensity, risk score, or hotspot severity
- **Disease case reporting & auto-alerting** — officials log suspected/confirmed cases, which feed automatic alert generation
- **Risk scoring** — the epidemiologist dashboard blends environmental/climate signals with reported case data to compute county risk scores
- **Data visualization** — trend and comparison charts rendered natively with the Canvas 2D API
- **PDF/PNG export** — policy makers can export maps and briefs client-side via `html2canvas` and `jsPDF`
- **Authentication** — email/password signup and signin with hashed passwords and token-based sessions
## Tech Stack
| Layer | Technology |
|------------|------------|
| Frontend | Vanilla JavaScript, HTML, CSS, Leaflet for maps, Canvas 2D API for charts |
| Backend | Python standard library only — `http.server` (`BaseHTTPRequestHandler` + `ThreadingHTTPServer`), no framework |
| Database | SQLite |
| Data pipeline | Python scripts pulling from NASA POWER, WHO GHO, and World Bank APIs |
| Export | `html2canvas` + `jsPDF` (client-side) |
No `npm`, no `pip install` — the entire backend runs on Python's standard library.
## Project Structure
```
GIS Project/
├── backend/
│ ├── app.py # Single entry point — HTTP server, routing, auth, API
│ ├── dat …