AmakaziWatch is a community-powered GBV awareness and reporting, prevention platform for Kenya. Anonymous incident reporting, live county heatmap, NGO directory, education hub, and AI-assisted triage — built with Django, DRF, Africa's Talking SMS, M-Pesa , and Cloudinary.
# AmakaziWatch Backend API
> Kenya's first crowdsourced GBV awareness, reporting and prevention platform.
## Overview
AmakaziWatch is a Django REST Framework API that powers a comprehensive GBV (Gender-Based Violence) awareness and prevention platform for Kenya. It enables anonymous incident reporting, AI-powered classification, live heatmaps, organization coordination, and survivor safety tools.
## Tech Stack
* **Framework**: Django 6.0.5 + Django REST Framework 3.17.1
* **Database**: PostgreSQL (Render)
* **Auth**: JWT + Google OAuth + 2FA (TOTP)
* **File Storage**: Cloudinary
* **SMS**: Africa's Talking
* **Payments**: Paystack
* **AI**: Groq API (LLaMA)
* **Analytics**: Pandas
* **Deployment**: Render + Docker
## API Endpoints
| Category | Endpoint | Method | Auth |
| ---------------- | ------------------------------ | --------------- | --------- |
| Auth | `/api/auth/register/` | POST | None |
| Auth | `/api/auth/token/` | POST | None |
| Auth | `/api/auth/token/refresh/` | POST | None |
| Auth | `/api/auth/password-reset/` | POST | None |
| Auth | `/api/auth/password-change/` | POST | Bearer |
| Auth | `/api/auth/2fa/*` | GET/POST | Bearer |
| Profile | `/api/profile/` | GET/PATCH | Bearer |
| Reports | `/api/reports/` | GET/POST | Optional |
| Reports | `/api/reports/stats/` | GET | None |
| Reports | `/api/reports/heatmap/` | GET | Bearer |
| Safety | `/api/safety/timer/*` | POST | Bearer |
| Safety | `/api/safety/safe-word/*` | POST | Bearer |
| Safety | `/api/safety/risk-assessment/` | POST | Bear …