# kushal287/anumati architecture

> Architecture diagram of the GitHub repository kushal287/anumati, 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/kushal287/anumati
- Repository: https://github.com/kushal287/anumati

## Overview

ANUMATI is a single-window industrial clearance and regulatory-intelligence platform for investors and government officers. Investors prepare enterprise information and documents, submit clearance applications, and track departmental review; officers review applications and issue decisions or correction requests. The product also supports dependency-based clearance planning, statutory deadlines, incentive calculation, document pre-validation, and regulatory Q&A. The README documents these capabilities, while sampled backend source confirms application handling and SLA checks, RAG ingestion, and chat-to-Groq behavior; unsampled route wiring is not assumed.

Main entry points: [`backend/app/main.py`](https://github.com/kushal287/anumati/blob/main/backend/app/main.py) (Backend Gateway), [`backend/app/api/applications.py`](https://github.com/kushal287/anumati/blob/main/backend/app/api/applications.py) (Application API), [`backend/app/api/documents.py`](https://github.com/kushal287/anumati/blob/main/backend/app/api/documents.py) (Document API), [`backend/app/services/b2_storage.py`](https://github.com/kushal287/anumati/blob/main/backend/app/services/b2_storage.py) (Document Storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portals["User Portals"]
  node_investor_portal["Investor Portal"]
  node_officer_portal["Officer Portal"]
end

subgraph group_clearance["Clearance Lifecycle"]
  node_application_api["Application API<br/>[applications.py]"]
  node_application_service["Application Service"]
  node_workflow_engine["Workflow Rules<br/>[workflow_engine.py]"]
  node_dag_api["DAG API<br/>[dag.py]"]
  node_caf_api["CAF API<br/>[caf.py]"]
  node_prevalidation["Pre-Validation"]
  node_risk_engine["Scrutiny Risk<br/>[risk_engine.py]"]
  node_sla_service["SLA Monitor<br/>[sla_service.py]"]
end

subgraph group_intelligence["Regulatory Intelligence"]
  node_incentives_api["Incentives API<br/>[schemes.py]"]
  node_policy_engine["Policy Calculator<br/>[policy_engine.py]"]
  node_rag_api["Regulatory Q&amp;A API<br/>[rag.py]"]
  node_rag_ingestion["Corpus Ingestion<br/>[ingestion.py]"]
  node_chat_route["Chat Assistant<br/>[route.ts]"]
end

subgraph group_services["Platform Services"]
  node_api_gateway["Backend Gateway<br/>[main.py]"]
  node_document_api["Document API<br/>[documents.py]"]
  node_document_storage["Document Storage<br/>[b2_storage.py]"]
end

subgraph group_state["State And Integrations"]
  node_firestore[("Firestore")]
  node_b2[("Backblaze B2")]
  node_qdrant[("Qdrant")]
  node_groq["Groq API"]
end

node_investor(("Investor"))
node_officer(("Government Officer"))

node_investor -->|"uses"| node_investor_portal
node_officer -->|"uses"| node_officer_portal
node_api_gateway -->|"mounts"| node_application_api
node_api_gateway -->|"mounts"| node_dag_api
node_api_gateway -->|"mounts"| node_caf_api
node_api_gateway -->|"mounts"| node_incentives_api
node_api_gateway -->|"mounts"| node_rag_api
node_api_gateway -->|"mounts"| node_document_api
node_application_api -->|"calls"| node_application_service
node_application_api -->|"checks SLAs"| node_sla_service
node_application_api -->|"reads sessions"| node_firestore
node_document_api -->|"delegates storage"| node_document_storage
node_document_storage -->|"reads and writes"| node_b2
node_chat_route -->|"requests completions"| node_groq
node_rag_ingestion -->|"indexes chunks"| node_qdrant

click node_investor_portal "https://github.com/kushal287/anumati/tree/main/frontend/src/app/dashboard"
click node_officer_portal "https://github.com/kushal287/anumati/tree/main/frontend/src/app/admin"
click node_application_api "https://github.com/kushal287/anumati/blob/main/backend/app/api/applications.py"
click node_application_service "https://github.com/kushal287/anumati/blob/main/backend/app/services/applications_service.py"
click node_workflow_engine "https://github.com/kushal287/anumati/blob/main/backend/app/rules/workflow_engine.py"
click node_dag_api "https://github.com/kushal287/anumati/blob/main/backend/app/api/dag.py"
click node_caf_api "https://github.com/kushal287/anumati/blob/main/backend/app/api/caf.py"
click node_risk_engine "https://github.com/kushal287/anumati/blob/main/backend/app/services/risk_engine.py"
click node_sla_service "https://github.com/kushal287/anumati/blob/main/backend/app/services/sla_service.py"
click node_incentives_api "https://github.com/kushal287/anumati/blob/main/backend/app/api/schemes.py"
click node_policy_engine "https://github.com/kushal287/anumati/blob/main/backend/app/rules/policy_engine.py"
click node_rag_api "https://github.com/kushal287/anumati/blob/main/backend/app/api/rag.py"
click node_rag_ingestion "https://github.com/kushal287/anumati/blob/main/backend/app/rag/ingestion.py"
click node_chat_route "https://github.com/kushal287/anumati/blob/main/frontend/src/app/api/chat/route.ts"
click node_api_gateway "https://github.com/kushal287/anumati/blob/main/backend/app/main.py"
click node_document_api "https://github.com/kushal287/anumati/blob/main/backend/app/api/documents.py"
click node_document_storage "https://github.com/kushal287/anumati/blob/main/backend/app/services/b2_storage.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_investor_portal,node_officer_portal toneBlue
class node_application_api,node_application_service,node_workflow_engine,node_dag_api,node_caf_api,node_prevalidation,node_risk_engine,node_sla_service toneAmber
class node_incentives_api,node_policy_engine,node_rag_api,node_rag_ingestion,node_chat_route toneMint
class node_api_gateway,node_document_api,node_document_storage toneRose
class node_firestore,node_b2,node_qdrant,node_groq,node_investor,node_officer toneIndigo
```

## Components

### User Portals

- [Investor Portal](https://github.com/kushal287/anumati/tree/main/frontend/src/app/dashboard): `frontend/src/app/dashboard`
- [Officer Portal](https://github.com/kushal287/anumati/tree/main/frontend/src/app/admin): `frontend/src/app/admin`

### Clearance Lifecycle

- [Application API](https://github.com/kushal287/anumati/blob/main/backend/app/api/applications.py): `backend/app/api/applications.py`
- [Application Service](https://github.com/kushal287/anumati/blob/main/backend/app/services/applications_service.py): `backend/app/services/applications_service.py`
- [Workflow Rules](https://github.com/kushal287/anumati/blob/main/backend/app/rules/workflow_engine.py): `backend/app/rules/workflow_engine.py`
- [DAG API](https://github.com/kushal287/anumati/blob/main/backend/app/api/dag.py): `backend/app/api/dag.py`
- [CAF API](https://github.com/kushal287/anumati/blob/main/backend/app/api/caf.py): `backend/app/api/caf.py`
- **Pre-Validation**
- [Scrutiny Risk](https://github.com/kushal287/anumati/blob/main/backend/app/services/risk_engine.py): `backend/app/services/risk_engine.py`
- [SLA Monitor](https://github.com/kushal287/anumati/blob/main/backend/app/services/sla_service.py): `backend/app/services/sla_service.py`

### Regulatory Intelligence

- [Incentives API](https://github.com/kushal287/anumati/blob/main/backend/app/api/schemes.py): `backend/app/api/schemes.py`
- [Policy Calculator](https://github.com/kushal287/anumati/blob/main/backend/app/rules/policy_engine.py): `backend/app/rules/policy_engine.py`
- [Regulatory Q&A API](https://github.com/kushal287/anumati/blob/main/backend/app/api/rag.py): `backend/app/api/rag.py`
- [Corpus Ingestion](https://github.com/kushal287/anumati/blob/main/backend/app/rag/ingestion.py): `backend/app/rag/ingestion.py`
- [Chat Assistant](https://github.com/kushal287/anumati/blob/main/frontend/src/app/api/chat/route.ts): `frontend/src/app/api/chat/route.ts`

### Platform Services

- [Backend Gateway](https://github.com/kushal287/anumati/blob/main/backend/app/main.py): `backend/app/main.py`
- [Document API](https://github.com/kushal287/anumati/blob/main/backend/app/api/documents.py): `backend/app/api/documents.py`
- [Document Storage](https://github.com/kushal287/anumati/blob/main/backend/app/services/b2_storage.py): `backend/app/services/b2_storage.py`

### State And Integrations

- **Firestore**
- **Backblaze B2**
- **Qdrant**
- **Groq API**

### Other components

- **Investor**
- **Government Officer**

## Connections

- Investor → Investor Portal: uses
- Government Officer → Officer Portal: uses
- Backend Gateway → Application API: mounts
- Backend Gateway → DAG API: mounts
- Backend Gateway → CAF API: mounts
- Backend Gateway → Incentives API: mounts
- Backend Gateway → Regulatory Q&A API: mounts
- Backend Gateway → Document API: mounts
- Application API → Application Service: calls
- Application API → SLA Monitor: checks SLAs
- Application API → Firestore: reads sessions
- Document API → Document Storage: delegates storage
- Document Storage → Backblaze B2: reads and writes
- Chat Assistant → Groq API: requests completions
- Corpus Ingestion → Qdrant: indexes chunks
