# 🦅 FluSentinel Egypt
> AI-powered early warning platform for Avian Influenza in Egypt
## Quick start (5 minutes)
```bash
# 1. Clone and configure
git clone
cd flusentinel
cp .env.local .env.local # already configured for local dev
# 2. Start everything
make up
# 3. In a second terminal — first-time setup
make migrate
make seed
make generate-data
make train
# Or run all at once:
make setup
```
**Open:**
- API docs →
localhost
- Frontend →
localhost
- MinIO console →
localhost (user: `flusentinel`, pass: `flusentinel_dev`)
---
## Project structure
```
flusentinel/
├── main.py # FastAPI app entry point
├── core/ # Config, DB, security
│ ├── config.py
│ ├── database.py
│ ├── security.py
│ └── deps.py
├── models/
│ └── tables.py # All SQLAlchemy ORM models
├── routers/ # One file per route group
│ ├── auth.py
│ ├── farms.py
│ ├── surveillance.py
│ ├── climate.py
│ ├── risk.py
│ ├── genomic.py
│ ├── alerts.py
│ ├── governorates.py
│ ├── reports.py
│ └── websocket.py
├── services/ # Business logic
│ ├── feature_engineering.py
│ ├── ml_predictor.py
│ ├── alert_dispatcher.py
│ ├── climate_etl.py
│ ├── genomic_pipeline.py
│ ├── genomic_qc.py
│ ├── mutation_scanner.py
│ ├── genomic_risk_scorer.py
│ ├── variant_comparator.py
│ ├── report_generator.py
│ └── genbank_fetcher.py
├── tasks/
│ └── celery_app.py # Celery tasks + beat schedule
├── training/
│ ├── train_xgboost.py # XGBoost model training
│ ├── train_lstm.py # LSTM seasonal model
│ └── export_training_data.py # DB → CSV export
├── scripts/
│ ├── init.sql # PostGIS + TimescaleDB extensions
│ ├── seed_govs.py # Seed 27 governorates
│ └── generate_training_data.py # Synthetic training data
├── tests/
│ ├── test_auth.py
│ ├── test_risk.py
│ └── test_surveil …