Skip to content

OpenJustice-org/.github

OpenJustice

An offline-first criminal justice information system for low-connectivity environments

License: MIT SDG 16 TypeScript PRs Welcome


About

OpenJustice is an open-source Digital Public Good built to digitize criminal justice record management for agencies operating in low-connectivity environments, starting with Sierra Leone. The system works offline, runs on basic hardware, and handles the full case lifecycle across law enforcement, prosecution, judiciary, and corrections. It is designed to be adapted and deployed by any country.

Key Features

  • Offline-first Progressive Web App -- full functionality without internet, with background sync when connectivity returns
  • Dual-channel field tools -- USSD interface for 2G networks and WhatsApp integration for field officers
  • Role-based access control -- six default roles with granular, configurable permissions
  • AES-256 PII encryption -- all personally identifiable information encrypted at rest
  • Country-configurable -- adaptable legal frameworks, national ID systems, rank structures, and languages
  • Tamper-evident audit trail -- full logging of every data mutation
  • Inter-agency data sharing API -- secure, controlled information exchange between justice-sector agencies
  • Geospatial analytics -- crime mapping, hotspot detection, and location-based dashboards
  • Broad coverage -- 24 backend modules, 32 database models, 69 reusable UI components

Tech Stack

Layer Technology
Backend NestJS 11, TypeScript, Prisma ORM
Database PostgreSQL 15+
Frontend Next.js 16, React 19
Styling Tailwind CSS 4, shadcn/ui
Queue / Cache Redis (BullMQ)
Storage S3-compatible object storage
Infrastructure Docker

Quick Start

Prerequisites

  • Node.js 20+
  • Docker and Docker Compose
  • PostgreSQL 15+ (or use the provided Docker setup)

Backend

cd server
cp .env.example .env
npm install
npx prisma generate
npx prisma db push
npx prisma db seed
npm run start:dev

Frontend

cd client
cp .env.example .env.local
npm install
npm run dev

The backend runs at http://localhost:3000 (Swagger docs at /api/docs). The frontend runs at http://localhost:3001.

Documentation

Full documentation is available in the docs/ directory, covering architecture, module references, API specifications, deployment guides, and country-adaptation instructions.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for guidelines on the development workflow, coding standards, and pull request process.

License

This project is licensed under the MIT License. See LICENSE for details.

Contact

For questions, partnership inquiries, or implementation support:

Saidu Bunduka Kamara -- [email protected]


OpenJustice is aligned with United Nations Sustainable Development Goal 16: Peace, Justice and Strong Institutions.

About

OpenJustice organisation profile

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors