EpiAlert is a lightweight, zero-dependency terminal application for epidemiological surveillance in Burkina Faso. Built strictly with the Python Standard Library, it enables early outbreak detection, secure role-based data entry, and automated report generation for offline health environments.
# 1. Project Title and Description
## **EpiAlert**
Epidemiological Surveillance System for Burkina Faso.
A terminal-based tool for tracking disease outbreaks, detecting epidemics early, and generating epidemiological reports across the 13 regions of Burkina Faso. Designed for health agents (data entry) and department supervisors (consultation and analysis) working on the front lines of public health surveillance.
---
# 2. How to Run the Project
- **Python 3.10+** required.
- **No external dependencies** — the project uses only Python standard library modules.
- **Command:**
```
python main.py
```
- Data files are created automatically in `data/` on first run.
---
# 3. Features
- **Health Agent role** — register patients, update status, review own entries
- **Department Agent role** — view reports, run epidemic detection, export data, analytics dashboard
- Strict role separation: data entry vs. consultation/analysis
- Epidemiological surveillance by zone, region, and national level
- Automatic epidemic detection with disease-specific thresholds
- Alert system with severity levels: Warning / Critical / Emergency
- Epidemiological reports at zone, regional, and national scale
- Export to `.txt` and `.md` (Markdown with professional tables)
- Auto-archiving into `outputs/classeurs/` by region and province
- Analytics dashboard with mortality rates and weekly trends
- Colour-coded diseases, statuses, and alerts with built-in visual legend
- Health centre selection during login
- All 13 regions of Burkina Faso with provinces and communes
- Auto-timestamp on patient registration
---
# 4. Technologies Used
- **Python 3.10+**
- Standard modules: `os`, `sys`, `datetime`, `abc`
- No external dependencies
---
# 5. Project Structure
```
EpiAlert/
main.py Main entry point with role-specific dispatch
config.py Constants, regions, diseases, thresholds, colours, partners
models.py Agent, HealthAgent, DepartmentAgent, Patient, D …