# dev-anshu-11/nidarshan architecture

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

- Interactive diagram: https://gitdiagram.com/dev-anshu-11/nidarshan
- Repository: https://github.com/dev-anshu-11/nidarshan

## Overview

NIDARSHAN is an evidence-first cyber-fraud investigation workspace. Investigators upload and review evidence; the server parses files, hashes and stores originals, and indexes extracted signals. Analysis correlates entities into explainable links and risk scores, while APK triage, timelines, audit history, cautious AI narratives, reports, and offline bundles support investigation and review. The frontend routes the workspace views, and the backend also exposes typed case procedures. Route/parser behavior is sampled; several UI-to-endpoint connections and seeded-data details are documented but not verified in source excerpts.

Main entry points: [`frontend/src/App.tsx`](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/App.tsx) (Workspace router), [`backend/routes/evidenceRoutes.ts`](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/evidenceRoutes.ts) (Evidence routes), [`backend/routes/analysisRoutes.ts`](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/analysisRoutes.ts) (Analysis routes), [`backend/db/db.ts`](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/db/db.ts) (Case database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Investigator workspace"]
  node_app["Workspace router<br/>[App.tsx]"]
  node_upload["Evidence upload<br/>[Upload.tsx]"]
  node_dashboard["Dashboard<br/>[Dashboard.tsx]"]
  node_entities["Entity review<br/>[Entities.tsx]"]
  node_timeline["Evidence timeline<br/>[Timeline.tsx]"]
  node_reportview["Brief and reports<br/>[Report.tsx]"]
  node_auditview["Audit review<br/>[AuditLog.tsx]"]
end

subgraph group_ingestion["Evidence intake"]
  node_evidenceapi["Evidence routes<br/>[evidenceRoutes.ts]"]
  node_parser["Evidence parser<br/>[evidenceParser.ts]"]
  node_apkparser["APK triage<br/>[apkParser.ts]"]
  node_storage["Original file storage<br/>[storage.ts]"]
end

subgraph group_analysis["Investigation analysis"]
  node_analysisapi["Analysis routes<br/>[analysisRoutes.ts]"]
  node_intelligence["Entity correlation<br/>[intelligence.ts]"]
  node_reportgen["Report generation<br/>[reportGenerator.ts]"]
  node_llm["Narrative model<br/>[llm.ts]"]
end

subgraph group_persistence["Case persistence"]
  node_audit["Audit events<br/>[db.ts]"]
  node_db[("Case database<br/>[db.ts]")]
  node_trpc["Case procedures<br/>[routers.ts]"]
  node_seed["Demo case data<br/>[nidarshanData.ts]"]
end

node_investigator(("Investigator"))

node_investigator -->|"uses"| node_app
node_app -->|"routes to"| node_upload
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_entities
node_app -->|"routes to"| node_timeline
node_app -->|"routes to"| node_reportview
node_app -->|"routes to"| node_auditview
node_upload -->|"uploads to"| node_evidenceapi
node_evidenceapi -->|"parses"| node_parser
node_evidenceapi -->|"triages APK"| node_apkparser
node_evidenceapi -->|"stores originals"| node_storage
node_evidenceapi -->|"writes metadata"| node_db
node_evidenceapi -->|"records events"| node_audit
node_analysisapi -->|"reads evidence"| node_db
node_analysisapi -->|"correlates"| node_intelligence
node_analysisapi -->|"requests narrative"| node_llm
node_analysisapi -->|"builds reports"| node_reportgen
node_analysisapi -->|"records events"| node_audit
node_trpc -->|"reads and writes cases"| node_db
node_trpc -->|"loads demo payload"| node_seed

click node_app "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/App.tsx"
click node_upload "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Upload.tsx"
click node_dashboard "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Dashboard.tsx"
click node_entities "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Entities.tsx"
click node_timeline "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Timeline.tsx"
click node_reportview "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Report.tsx"
click node_auditview "https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/AuditLog.tsx"
click node_evidenceapi "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/evidenceRoutes.ts"
click node_parser "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/parsers/evidenceParser.ts"
click node_apkparser "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/parsers/apkParser.ts"
click node_storage "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/storage.ts"
click node_analysisapi "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/analysisRoutes.ts"
click node_intelligence "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/intelligence.ts"
click node_reportgen "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/reportGenerator.ts"
click node_llm "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/_core/llm.ts"
click node_audit "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/db/db.ts"
click node_db "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/db/db.ts"
click node_trpc "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/routers.ts"
click node_seed "https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/nidarshanData.ts"

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_app,node_upload,node_dashboard,node_entities,node_timeline,node_reportview,node_auditview toneBlue
class node_evidenceapi,node_parser,node_apkparser,node_storage toneAmber
class node_analysisapi,node_intelligence,node_reportgen,node_llm toneMint
class node_audit,node_db,node_trpc,node_seed toneRose
class node_investigator toneIndigo
```

## Components

### Investigator workspace

- [Workspace router](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Evidence upload](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Upload.tsx): `frontend/src/screens/Upload.tsx`
- [Dashboard](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Dashboard.tsx): `frontend/src/screens/Dashboard.tsx`
- [Entity review](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Entities.tsx): `frontend/src/screens/Entities.tsx`
- [Evidence timeline](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Timeline.tsx): `frontend/src/screens/Timeline.tsx`
- [Brief and reports](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/Report.tsx): `frontend/src/screens/Report.tsx`
- [Audit review](https://github.com/dev-anshu-11/nidarshan/blob/main/frontend/src/screens/AuditLog.tsx): `frontend/src/screens/AuditLog.tsx`

### Evidence intake

- [Evidence routes](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/evidenceRoutes.ts): `backend/routes/evidenceRoutes.ts`
- [Evidence parser](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/parsers/evidenceParser.ts): `backend/parsers/evidenceParser.ts`
- [APK triage](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/parsers/apkParser.ts): `backend/parsers/apkParser.ts`
- [Original file storage](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/storage.ts): `backend/services/storage.ts`

### Investigation analysis

- [Analysis routes](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/analysisRoutes.ts): `backend/routes/analysisRoutes.ts`
- [Entity correlation](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/intelligence.ts): `backend/services/intelligence.ts`
- [Report generation](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/reportGenerator.ts): `backend/services/reportGenerator.ts`
- [Narrative model](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/_core/llm.ts): `backend/_core/llm.ts`

### Case persistence

- [Audit events](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/db/db.ts): `backend/db/db.ts`
- [Case database](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/db/db.ts): `backend/db/db.ts`
- [Case procedures](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/routes/routers.ts): `backend/routes/routers.ts`
- [Demo case data](https://github.com/dev-anshu-11/nidarshan/blob/main/backend/services/nidarshanData.ts): `backend/services/nidarshanData.ts`

### Other components

- **Investigator**

## Connections

- Investigator → Workspace router: uses
- Workspace router → Evidence upload: routes to
- Workspace router → Dashboard: routes to
- Workspace router → Entity review: routes to
- Workspace router → Evidence timeline: routes to
- Workspace router → Brief and reports: routes to
- Workspace router → Audit review: routes to
- Evidence upload → Evidence routes: uploads to
- Evidence routes → Evidence parser: parses
- Evidence routes → APK triage: triages APK
- Evidence routes → Original file storage: stores originals
- Evidence routes → Case database: writes metadata
- Evidence routes → Audit events: records events
- Analysis routes → Case database: reads evidence
- Analysis routes → Entity correlation: correlates
- Analysis routes → Narrative model: requests narrative
- Analysis routes → Report generation: builds reports
- Analysis routes → Audit events: records events
- Case procedures → Case database: reads and writes cases
- Case procedures → Demo case data: loads demo payload
