# AquaWatch Africa 🌊
A production-grade water quality monitoring platform for West Africa (Nigeria, Ghana, Senegal) and Southern Africa (South Africa, Zimbabwe, Zambia). Monitors boreholes, surface water (rivers, lakes, reservoirs), and rural community water points.
## Features
- **Real-time water quality monitoring** — Track pH, TDS, turbidity, fluoride, nitrate, coliform
- **Interactive map** — Leaflet.js map with Sentinel-2 satellite overlay
- **AI-powered analysis** — OpenRouter API (Gemma + Llama fallback) for treatment recommendations
- **Maintenance queue** — Automated rule-based service scheduling with 10 trigger rules
- **SMS alerts** — Africa's Talking API for critical contamination notifications
- **Satellite data** — Copernicus Sentinel-2 NDWI and turbidity indices
- **PWA support** — Offline-capable for 2G mobile users
- **Multi-language** — English, French, Hausa, Swahili
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Frontend | React 18 + Vite + TypeScript + Tailwind CSS v3 |
| Backend | FastAPI Python 3.11 + SQLAlchemy async + Alembic |
| Database | PostgreSQL 15 + PostGIS |
| Cache | Redis 7 |
| AI | OpenRouter API (google/gemma-3-12b-it:free → meta-llama/llama-3.1-8b-instruct:free) |
| Maps | Leaflet.js + React-Leaflet |
| Charts | Recharts |
| Auth | JWT python-jose + bcrypt |
| SMS | Africa's Talking API |
| Deploy | Docker Compose + DigitalOcean App Platform |
| CI/CD | GitHub Actions |
| State | Zustand |
## Quick Start
### Prerequisites
- Docker & Docker Compose
- Node.js 20+
- Python 3.11+
### Local Development
```bash
# 1. Clone and configure
cp .env.example .env
# Fill in your API keys in .env
# 2. Start all services
docker-compose up -d
# 3. Run database migrations
docker-compose exec backend alembic upgrade head
# 4. Seed sample data
docker-compose exec backend python -m app.seeds
# 5. Access the app
# Frontend:
localhost
# Backend API:
localhost
# API Docs:
localhost
``` …