FloodGuard AI
Urban flood early-warning platform with a fully automated MLOps lifecycle.

TL;DR
An urban flood early-warning system where the model is treated as a production asset: versioned data, tracked experiments, containerized serving, and continuous drift monitoring.
- Inference Latency
- ~42ms p50 (PyTorch CPU / Batch=1)
- Drift Alerting
- Evidently AI (PSI > 0.25)
Problem
Flood prediction models rot silently. Without data versioning, experiment tracking, and drift monitoring, a model that scored well once quietly degrades before anyone notices.
Approach
- 01
Versioned datasets with DVC so every model artifact traces back to the exact data that produced it.
- 02
Tracked experiments and metrics in MLflow to compare runs objectively instead of by intuition.
- 03
Served predictions through a REST API with a heuristic fallback so the endpoint never hard-fails.
- 04
Containerized with Docker and automated build, test, and deploy through GitHub Actions.
- 05
Monitored production inputs with Evidently AI to catch distribution drift early.
Key architectural decision
Architected a pluggable ML pipeline separating model serving from backend core logic using FastAPI, allowing seamless algorithm upgrades without disrupting production endpoints.
System Architecture & Data Pipeline

Impact
- Model updates ship through an automated pipeline instead of manual redeploys.
- Every prediction path has a fallback, keeping the warning service available under model failure.
- Drift reports surface degradation before forecast quality visibly drops.
What shipped
DVC + MLflow pipeline
Reproducible data and experiment lineage per run.
Dockerized serving
REST inference container with graceful fallback.
Drift dashboard
Evidently AI reports wired into the CI schedule.
Stack
- Python
- AWS EC2
- Docker Compose
- Nginx
- FastAPI
- React
- DVC
- MLflow
- Docker
- GitHub Actions
- Evidently AI