CBP Zambia is a crime-based prediction and case-management platform designed for recording homicide cases, analyzing behavioral patterns, identifying possible serial-case links, and estimating location-based crime risk.
# CBP Zambia
CBP Zambia is a crime-based prediction and case-management platform designed
for recording homicide cases, analyzing behavioral patterns, identifying
possible serial-case links, and estimating location-based crime risk.
The project includes a React web dashboard, an Expo mobile client, a Node.js
API backed by MongoDB, and a Python machine-learning service.
> The included case and model-training datasets are synthetic and must not be
> presented as official Zambia Police crime data.
## Features
- Role-based access for administrators, analysts, and officers
- Secure JWT authentication
- Crime and homicide case registration
- Behavioral risk scoring and offender-description analysis
- Victimology analysis
- Report browsing and detailed case views
- Serial-case linkage analysis
- Geographic risk map
- ML-powered crime-risk predictions with feature explanations
- Admin user management and model retraining
- Responsive web and cross-platform mobile clients
## Architecture
| Service | Technology | Default URL |
| --- | --- | --- |
| Web client | React, TypeScript, Vite, Tailwind CSS | `
localhost` |
| Mobile client | React Native, Expo | Expo/Metro URL |
| API | Node.js, Express, Mongoose | `
localhost` |
| ML engine | FastAPI, scikit-learn, XGBoost, SHAP | `
localhost` |
| Database | MongoDB | `mongodb://localhost:27017/cbp_zambia` |
The web and mobile clients call the Express API. The API stores application
data in MongoDB and forwards prediction and retraining requests to the FastAPI
ML engine.
## Project Structure
```text
.
|-- backend/ Express API, MongoDB models, auth, and analysis services
|-- frontend/ React web dashboard
|-- mobile/ Expo React Native application
|-- ml-engine/ FastAPI prediction service, training code, and datasets
|-- docs/ Project documentation
`-- package.json Root development commands
```
## Prerequisites
- Node.js 20 or newer
- npm
- Python 3.10 or newe …