Skip to content

jamhour1g/RightsWatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Human Rights Monitor MIS

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.


Overview

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.


Key Features

  • 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.

Architecture

Backend:  FastAPI (Python)
Database: MongoDB
Authentication: Role-based (JWT)

Modules

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

Getting Started

Requirements

  • Python ≥ 3.10
  • MongoDB ≥ 5.0

Installation

  1. Clone the repository

    git clone https://github.com/jamhour1g/HumanRightsMonitor.git
    cd HumanRightsMonitor
  2. Create a virtual environment

    python -m venv venv
    source venv/bin/activate   # Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Set up MongoDB

    • Ensure MongoDB is running locally or remotely.
    • Create a .env file with:
     DB_USERNAME=DevUser
     DB_PASSWORD={SUPER_SECRET_KEY}
     DB_HOST=localhost
     DB_PORT=27017
     DB_AUTH_DB=admin
     DB_NAME=rightsWatcher
  5. Add JWT Env keys

    • Ensure MongoDB is running locally or remotely.
    • Create a .env file with:
     SECRET_KEY={SUPER_SECRET_KEY}
     ALGORITHM=HS256
     ACCESS_TOKEN_EXPIRE_MINUTES=60

Running the App

Start the FastAPI backend:

uvicorn app.main:app --reload

Access the interactive API docs:

http://127.0.0.1:8000/docs

API Endpoints (Core Examples)

Case Management

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

Incident Reporting

POST   /reports/            → Submit incident
GET    /reports/analytics   → Get report statistics

Victim Database

POST   /victims/            → Add new victim
PATCH  /victims/{id}        → Update risk level
GET    /victims/case/{id}   → List victims linked to a case

Data Analytics

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 --reload

License

MIT License © 2025 — Human Rights Monitor Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •