Environmental incident reporting and monitoring platform for Tarkwa-Nsuaem, Ghana
# EcoWatch Tarkwa
Mobile and USSD-based civic engagement platform for environmental monitoring in Tarkwa-Nsuaem, Ghana.
## Ownership model
EcoWatch is a **shared municipal platform** owned by **Tarkwa-Nsuaem Municipal Assembly**. Participating government agencies manage incidents within their legal mandate. Incidents are routed automatically by category.
## Features
- **Anonymous incident reporting** with GPS map pin, text, and photo/video evidence
- **Privacy-first design** — no voice recordings (voice can identify reporters in small communities)
- Automatic multi-agency routing (including chemical spill → EPA + Fire + NADMO + Police)
- Role-specific dashboards (municipal, agency, officer, emergency, police, research)
- Case assignment, investigation notes, field photos, escalation
- Expanded investigation statuses
- Agency performance and response-time monitoring
- Public announcements management
- Audit logs (super admin, append-only)
- Platform settings (super admin)
- In-app notifications (including emergency severity alerts)
- DBSCAN hotspot detection with a 30-day growth trend
- Researcher anonymized analytics and export
## Live application
- Report an environmental incident:
ecowatch-report.vercel.app
- Admin portal:
ecowatch-report.vercel.app
- Download the Android app:
ecowatch-report.vercel.app
## Admin Portal
Officials sign in locally at
localhost or use the hosted admin portal above. Credentials must be supplied through environment variables and must never be committed.
## Getting Started
```bash
# Backend
cd backend
docker compose up -d postgres
npm install
npm run db:seed
npm run dev
# Flutter app
flutter pub get
flutter run
```
## Documentation
The `docs` directory contains the selected architecture, database, security, and hosting documentation relevant to the application.
## Security
Copy `backend/.env.example` to `backend/.env` for local development and provide …