# httpsanjay/nyaya_vault architecture

> Architecture diagram of the GitHub repository httpsanjay/nyaya_vault, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/httpsanjay/nyaya_vault
- Repository: https://github.com/httpsanjay/nyaya_vault

## Overview

NyayaVault is a Django legal-document and investigation-case management system. Its main workflow is role-based user access, case and document management, review and signing of document versions, with integrity checks and audit history. The README also documents asynchronous OCR; the sampled task code shows it updating version records and calling text extraction. Source excerpts are partial, so uncertain wiring—especially semantic search and REST API behavior—is not represented.

Main entry points: [`cases/views.py`](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/views.py) (Case and document workflows), [`nyaya_vault/urls.py`](https://github.com/httpsanjay/nyaya_vault/blob/main/nyaya_vault/urls.py) (Web routes), [`cases/models.py`](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/models.py) (Cases and versions), [`cases/tasks.py`](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/tasks.py) (OCR task)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Identity and access"]
  node_web_routes["Web routes<br/>[urls.py]"]
  node_account_views["Accounts and dashboard<br/>[views.py]"]
  node_account_models[("User accounts<br/>[models.py]")]
  node_account_serializers["Account serializers<br/>[serializers.py]"]
end

subgraph group_casework["Cases and documents"]
  node_case_views["Case and document workflows<br/>[views.py]"]
  node_case_models[("Cases and versions<br/>[models.py]")]
  node_case_forms["Case and document forms<br/>[forms.py]"]
  node_case_permissions["Case permissions<br/>[permissions.py]"]
end

subgraph group_trust["Review and traceability"]
  node_integrity["Hash and signature<br/>[views.py]"]
  node_audit_utils["Audit recording<br/>[utils.py]"]
  node_audit_views["Audit history<br/>[views.py]"]
  node_audit_models[("Audit records<br/>[models.py]")]
end

subgraph group_processing["Text processing"]
  node_ocr_task["OCR task<br/>[tasks.py]"]
  node_ocr_engine["Text extraction<br/>[ocr.py]"]
end

node_legal_users(("Legal users"))
node_task_broker["Redis broker"]
node_database[("Relational database")]

node_legal_users -->|"use web app"| node_web_routes
node_web_routes -->|"route requests"| node_account_views
node_web_routes -->|"route requests"| node_case_views
node_web_routes -->|"route requests"| node_audit_views
node_account_views -->|"read accounts"| node_account_models
node_account_views -->|"read case data"| node_case_models
node_case_views -->|"validate input"| node_case_forms
node_case_views -->|"check access"| node_case_permissions
node_case_views -->|"manage documents"| node_case_models
node_case_views -->|"verify and sign"| node_integrity
node_case_views -->|"record actions"| node_audit_utils
node_audit_views -->|"read history"| node_audit_models
node_audit_utils -->|"write records"| node_audit_models
node_ocr_task -->|"update version"| node_case_models
node_ocr_task -->|"extract text"| node_ocr_engine
node_ocr_task -.->|"run asynchronously"| node_task_broker
node_account_models -->|"persist accounts"| node_database
node_case_models -->|"persist case data"| node_database
node_audit_models -->|"persist audit"| node_database

click node_web_routes "https://github.com/httpsanjay/nyaya_vault/blob/main/nyaya_vault/urls.py"
click node_account_views "https://github.com/httpsanjay/nyaya_vault/blob/main/accounts/views.py"
click node_account_models "https://github.com/httpsanjay/nyaya_vault/blob/main/accounts/models.py"
click node_account_serializers "https://github.com/httpsanjay/nyaya_vault/blob/main/accounts/serializers.py"
click node_case_views "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/views.py"
click node_case_models "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/models.py"
click node_case_forms "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/forms.py"
click node_case_permissions "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/permissions.py"
click node_integrity "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/views.py"
click node_audit_utils "https://github.com/httpsanjay/nyaya_vault/blob/main/audit/utils.py"
click node_audit_views "https://github.com/httpsanjay/nyaya_vault/blob/main/audit/views.py"
click node_audit_models "https://github.com/httpsanjay/nyaya_vault/blob/main/audit/models.py"
click node_ocr_task "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/tasks.py"
click node_ocr_engine "https://github.com/httpsanjay/nyaya_vault/blob/main/cases/ocr.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web_routes,node_account_views,node_account_models,node_account_serializers,node_legal_users toneBlue
class node_case_views,node_case_models,node_case_forms,node_case_permissions,node_task_broker,node_database toneAmber
class node_integrity,node_audit_utils,node_audit_views,node_audit_models toneMint
class node_ocr_task,node_ocr_engine toneRose
```

## Components

### Identity and access

- [Web routes](https://github.com/httpsanjay/nyaya_vault/blob/main/nyaya_vault/urls.py): `nyaya_vault/urls.py`
- [Accounts and dashboard](https://github.com/httpsanjay/nyaya_vault/blob/main/accounts/views.py): `accounts/views.py`
- [User accounts](https://github.com/httpsanjay/nyaya_vault/blob/main/accounts/models.py): `accounts/models.py`
- [Account serializers](https://github.com/httpsanjay/nyaya_vault/blob/main/accounts/serializers.py): `accounts/serializers.py`

### Cases and documents

- [Case and document workflows](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/views.py): `cases/views.py`
- [Cases and versions](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/models.py): `cases/models.py`
- [Case and document forms](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/forms.py): `cases/forms.py`
- [Case permissions](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/permissions.py): `cases/permissions.py`

### Review and traceability

- [Hash and signature](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/views.py): `cases/views.py`
- [Audit recording](https://github.com/httpsanjay/nyaya_vault/blob/main/audit/utils.py): `audit/utils.py`
- [Audit history](https://github.com/httpsanjay/nyaya_vault/blob/main/audit/views.py): `audit/views.py`
- [Audit records](https://github.com/httpsanjay/nyaya_vault/blob/main/audit/models.py): `audit/models.py`

### Text processing

- [OCR task](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/tasks.py): `cases/tasks.py`
- [Text extraction](https://github.com/httpsanjay/nyaya_vault/blob/main/cases/ocr.py): `cases/ocr.py`

### Other components

- **Legal users**
- **Redis broker**
- **Relational database**

## Connections

- Legal users → Web routes: use web app
- Web routes → Accounts and dashboard: route requests
- Web routes → Case and document workflows: route requests
- Web routes → Audit history: route requests
- Accounts and dashboard → User accounts: read accounts
- Accounts and dashboard → Cases and versions: read case data
- Case and document workflows → Case and document forms: validate input
- Case and document workflows → Case permissions: check access
- Case and document workflows → Cases and versions: manage documents
- Case and document workflows → Hash and signature: verify and sign
- Case and document workflows → Audit recording: record actions
- Audit history → Audit records: read history
- Audit recording → Audit records: write records
- OCR task → Cases and versions: update version
- OCR task → Text extraction: extract text
- OCR task → Redis broker: run asynchronously
- User accounts → Relational database: persist accounts
- Cases and versions → Relational database: persist case data
- Audit records → Relational database: persist audit
