Skip to content

sajjadali-fullstack/cid-investigation-api

Repository files navigation

🛡️ CID Investigation REST API

A Crime Investigation Department (CID) Management System built with Django & Django REST Framework.

CID Investigation REST API Banner

A Crime Investigation Department (CID) Management System built with Django and Django REST Framework (DRF). This project provides RESTful APIs to manage Officers, Criminals, Cases, Evidence, and Witnesses — with built-in search, filtering, ordering, and pagination.

Python Django DRF License


📌 Overview

This system digitizes core CID workflows — officer records, criminal databases, registered cases, collected evidence, and witness statements — and exposes them as clean, filterable REST APIs, along with a Django Admin panel for internal management.


✨ Features

  • 👮 Officer Management — Track rank, joining date, and assigned cases
  • 🕵️ Criminal Database — Store aliases, criminal history, wanted status
  • 📁 Case Registry — Link officers & criminals to registered cases with status tracking
  • 🔬 Evidence Tracking — Fingerprint, DNA, CCTV, Weapon, RDX residue, and more
  • 🗣️ Witness Records — Statements linked to specific cases
  • 🔎 Search, Filter & Ordering on every API endpoint
  • 📄 Pagination (page size configurable via settings)
  • 🖥️ Django Admin Panel with custom list displays & search fields
  • 🎨 Landing Page built with Bootstrap 5 + Font Awesome showing live stats

📸 Project Screenshots

🏠 Dashboard

Dashboard



🔗 API Endpoints

API Endpoints



📋 API Documentation

API Documentation



ℹ️ About Page

About Page



📄 Footer

Footer

🛠️ Tech Stack

Layer Technology
Backend Python, Django
API Django REST Framework (DRF)
Database SQLite (default, easily swappable)
Frontend Bootstrap 5, Font Awesome, HTML/CSS
Admin Panel Django Admin


🔗 API Endpoints

Endpoint Method Description
/officers-api/ GET List all officers
/criminals-api/ GET List all criminals
/cases-api/ GET List all registered cases
/evidences-api/ GET List all evidence records
/witnesses-api/ GET List all witness statements
/admin/ - Django Admin panel

🔍 Example: Search & Ordering

GET /criminals-api/?search=John&ordering=age GET /officers-api/?search=Inspector GET /evidences-api/?search=RDX Explosive Residue


🧩 DRF Configuration

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 3,
    'DEFAULT_FILTER_BACKENDS': (
        'rest_framework.filters.SearchFilter',
        'rest_framework.filters.OrderingFilter',
    )
}

🚀 Future Improvements

  • Add authentication (JWT / Token-based)
  • Add Create/Update/Delete endpoints (currently List-only)
  • Add file upload support for evidence (photos, CCTV footage)
  • Dockerize the project
  • Add unit tests

👨‍💻 Developer

Sajjad Ali
Full Stack Python Developer



LinkedInPortfolio


📜 License

This project is licensed under the MIT License — free to use for learning and portfolio purposes.


⭐ If you found this project useful, consider giving it a star on GitHub!

About

A Django REST Framework based Crime Investigation Department (CID) system to manage Officers, Criminals, Cases, Evidence & Witnesses — with search, filter, ordering & pagination built-in.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages