YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
π§ AquaHealth β Analysis and Prediction of Waterborne Health Diseases
A full-stack mobile health platform that uses gradient-boosted ensemble models to predict waterborne diseases, assess water quality, forecast outbreak risk, and evaluate sanitation conditions across India.
Repository Structure
βββ app/ Flutter mobile application (cross-platform)
βββ backend/ Flask REST API with JWT auth & ML inference
βββ ML/ Model training pipeline, dataset, and plots
βββ doc/ IEEE research paper (LaTeX)
βββ README.md β you are here
Each subdirectory has its own README.md with setup instructions.
What AquaHealth Does
| Model | Task | Algorithm | Key Metric |
|---|---|---|---|
| Disease Classifier | 8-class classification (7 diseases + No Disease) | XGBoost + LightGBM weighted ensemble | 95.19% accuracy |
| WQI Predictor | Water Quality Index regression | XGBoost Regressor | RΒ² = 0.886 |
| Outbreak Risk | Binary outbreak prediction | LightGBM | AUC-ROC = 0.9997 |
| Water Safety | 3-class water safety (Safe / Moderate / Dangerous) | XGBoost | 99.25% accuracy |
| Sanitation Risk | Sanitation risk score regression | XGBoost Regressor | RΒ² = 0.787 |
Diseases Covered
Cholera Β· Typhoid Β· Dysentery Β· Giardiasis Β· Hepatitis A Β· Hepatitis E Β· Leptospirosis
Architecture Overview
βββββββββββββββββββββββ
β Flutter Mobile App β β User-facing UI (19 screens)
β (Dart / Riverpod) β
ββββββββββ¬βββββββββββββ
β HTTP + JWT
ββββββββββΌβββββββββββββ
β Flask REST API β β Authentication, validation, inference
β (Python / Gunicorn)β
ββββββββββ¬βββββββββββββ
β
ββββββββββΌβββββββββββββ
β ML Models (joblib) β β 5 pre-trained models loaded at startup
β PostgreSQL (users) β
βββββββββββββββββββββββ
Quick Start
1. Train the models (or use pre-trained)
cd ML
pip install -r requirements.txt
python train_models.py
2. Start the backend
cd backend
pip install -r requirements.txt
# Set DATABASE_URL or use the default PostgreSQL connection
python app.py
3. Run the mobile app
cd app
flutter pub get
flutter run
Update the API base URL in
app/lib/core/api_service.dartto point to your running backend.
Dataset
5.25 million synthetic records calibrated against real-world Indian epidemiological data (CPCB, IDSP, Census of India). Covers all 36 states/UTs, 615+ districts, 40 features spanning geography, water chemistry, sanitation, climate, demographics, and clinical symptoms.
See ML/Dataset-info.md for the complete data dictionary.
Tech Stack
| Layer | Technology |
|---|---|
| Mobile App | Flutter 3.9+, Dart, Riverpod, fl_chart, flutter_map |
| Backend API | Python 3.10+, Flask, Gunicorn, PostgreSQL, PyJWT |
| ML Training | XGBoost, LightGBM, scikit-learn, pandas, matplotlib |
| Model Serialization | joblib |
| Authentication | JWT (7-day expiry), salted SHA-256 password hashing |
Research Paper
The accompanying IEEE-format paper is in doc/research_paper.tex. It documents the methodology, dataset construction, model architecture, and experimental results.
License
This project is developed as an academic major project. See individual component READMEs for details.