Human Rights Monitor (HRM) is a secure, data-driven Management Information System (MIS) designed to document, track, and analyze human rights violations. It enables organizations to record incidents, manage victims/witnesses, and generate analytical reports for advocacy and legal support.
The Human Rights Monitor MIS centralizes the process of:
- Recording human rights abuses (detention, torture, displacement, etc.)
- Managing secure and anonymized victim/witness data
- Processing multi-source incident reports
- Visualizing data trends and patterns for advocacy
Built with FastAPI (Python), MongoDB.
- Case Management: Track cases from initial report to resolution.
- Incident Reporting: Submit and review violation reports with media attachments.
- Victim/Witness Database: Secure data storage with risk level assessment and pseudonym support.
- Data Visualization: Interactive dashboards (charts, maps, time-series analytics).
- Audit Trail: Status history and evidence versioning.
Backend: FastAPI (Python)
Database: MongoDB
Authentication: Role-based (JWT)
| Module | Description | Key Endpoints |
|---|---|---|
| Case Management | CRUD operations for human rights cases with attachments and history tracking | /cases/, /cases/{id} |
| Incident Reporting | Secure submission (anonymous supported), with geolocation and media uploads | /reports/, /reports/analytics |
| Victim/Witness Database | Encrypted storage, role-based access, risk tracking | /victims/, /victims/case/{id} |
| Data Analysis & Visualization | Dashboards, analytics, maps, and exportable reports | /analytics/violations, /analytics/timeline |
- Python ≥ 3.10
- MongoDB ≥ 5.0
-
Clone the repository
git clone https://github.com/jamhour1g/HumanRightsMonitor.git cd HumanRightsMonitor -
Create a virtual environment
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Set up MongoDB
- Ensure MongoDB is running locally or remotely.
- Create a
.envfile with:
DB_USERNAME=DevUser DB_PASSWORD={SUPER_SECRET_KEY} DB_HOST=localhost DB_PORT=27017 DB_AUTH_DB=admin DB_NAME=rightsWatcher
-
Add JWT Env keys
- Ensure MongoDB is running locally or remotely.
- Create a
.envfile with:
SECRET_KEY={SUPER_SECRET_KEY} ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=60
Start the FastAPI backend:
uvicorn app.main:app --reloadAccess the interactive API docs:
http://127.0.0.1:8000/docs
POST /cases/ → Create new case
GET /cases/{id} → Get case by ID
PATCH /cases/{id} → Update case status
GET /cases/ → List/filter cases
DELETE /cases/{id} → Archive a case
POST /reports/ → Submit incident
GET /reports/analytics → Get report statistics
POST /victims/ → Add new victim
PATCH /victims/{id} → Update risk level
GET /victims/case/{id} → List victims linked to a case
GET /analytics/violations → Violations by type
GET /analytics/timeline → Reports over time
GET /analytics/geodata → Geo map data
Run development server:
uvicorn app.main:app --reloadMIT License © 2025 — Human Rights Monitor Team