# sustik78/sih_2026 architecture

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

- Interactive diagram: https://gitdiagram.com/sustik78/sih_2026
- Repository: https://github.com/sustik78/sih_2026

## Overview

PRAMAN AI is a government-facing legal-metrology inspection platform. An inspector signs in, submits a package image or sample in the scan studio, and receives extracted declarations, statutory rule findings, a score, and visual evidence; the completed inspection is stored for later review and report export. The graph preserves the documented product, rule-library, analytics, audit, accessibility, and role-based access capabilities. Pipeline ordering follows the scan-route documentation; unsampled route and page internals limit some finer-grained wiring.

Main entry points: [`frontend/src/utils/api.js`](https://github.com/sustik78/sih_2026/blob/main/frontend/src/utils/api.js) (Frontend API client), [`frontend/src/App.jsx`](https://github.com/sustik78/sih_2026/blob/main/frontend/src/App.jsx) (Application shell), [`backend/app/routes/scan_routes.py`](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/scan_routes.py) (Scan orchestration), [`backend/app/database.py`](https://github.com/sustik78/sih_2026/blob/main/backend/app/database.py) (Application database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Inspector application"]
  node_app["Application shell<br/>[App.jsx]"]
  node_login["Sign-in<br/>[LoginPage.jsx]"]
  node_auth_ui["Auth context<br/>[AuthContext.jsx]"]
  node_accessibility["Accessibility settings"]
  node_scan_ui["Scan studio<br/>[ScanStudioPage.jsx]"]
  node_inspection_ui["Inspection views"]
  node_dashboard_ui["Dashboard<br/>[DashboardPage.jsx]"]
  node_history_ui["Inspection history"]
  node_product_ui["Product repository"]
  node_rules_ui["Rule library"]
  node_audit_ui["Audit trail view<br/>[AuditTrailPage.jsx]"]
  node_api_client["Frontend API client<br/>[api.js]"]
end

subgraph group_inspection["Inspection pipeline"]
  node_preprocess["Image preprocessing<br/>[preprocessor.py]"]
  node_ocr["OCR detection<br/>[ocr_engine.py]"]
  node_extract["Declaration extraction"]
  node_compliance["Rule evaluation<br/>[engine.py]"]
  node_rules["Statutory rule definitions"]
  node_scoring["Compliance scoring<br/>[scoring.py]"]
  node_evidence["Visual evidence<br/>[visual_evidence.py]"]
  node_scan_api["Scan orchestration<br/>[scan_routes.py]"]
end

subgraph group_governance["Access and records"]
  node_auth_api["Authentication API<br/>[auth_routes.py]"]
  node_auth_core["Token and access control<br/>[auth.py]"]
  node_models["Domain records<br/>[models.py]"]
  node_database[("Application database<br/>[database.py]")]
  node_main["API application<br/>[main.py]"]
end

subgraph group_review["Review and outputs"]
  node_inspection_api["Inspection records API"]
  node_product_api["Products and rules API<br/>[product_routes.py]"]
  node_analytics_api["Analytics API"]
  node_report_api["Reports and audit API<br/>[report_routes.py]"]
  node_pdf["PDF report generator<br/>[pdf_report.py]"]
  node_docx["DOCX report generator<br/>[docx_report.py]"]
end

node_inspector(("Inspector"))

node_inspector -->|"uses"| node_app
node_app -->|"renders"| node_login
node_app -->|"routes to"| node_scan_ui
node_app -->|"routes to"| node_inspection_ui
node_app -->|"routes to"| node_dashboard_ui
node_app -->|"routes to"| node_history_ui
node_app -->|"routes to"| node_product_ui
node_app -->|"routes to"| node_rules_ui
node_app -->|"routes to"| node_audit_ui
node_app -->|"provides context"| node_auth_ui
node_app -->|"provides context"| node_accessibility
node_login -->|"signs in through"| node_auth_ui
node_auth_ui -->|"submits credentials"| node_api_client
node_scan_ui -->|"submits scan"| node_api_client
node_inspection_ui -->|"requests details"| node_api_client
node_history_ui -->|"requests history"| node_api_client
node_dashboard_ui -->|"requests analytics"| node_api_client
node_product_ui -->|"searches products"| node_api_client
node_rules_ui -->|"requests rules"| node_api_client
node_audit_ui -->|"requests logs"| node_api_client
node_api_client -->|"calls"| node_auth_api
node_api_client -->|"calls"| node_scan_api
node_api_client -->|"calls"| node_inspection_api
node_api_client -->|"calls"| node_product_api
node_api_client -->|"calls"| node_analytics_api
node_api_client -->|"calls"| node_report_api
node_scan_api -->|"preprocesses image"| node_preprocess
node_scan_api -->|"runs OCR"| node_ocr
node_scan_api -->|"extracts declarations"| node_extract
node_scan_api -->|"evaluates compliance"| node_compliance
node_scan_api -->|"scores results"| node_scoring
node_scan_api -->|"builds overlays"| node_evidence
node_compliance -->|"evaluates against"| node_rules
node_scan_api -->|"persists inspection"| node_models
node_scan_api -->|"writes records"| node_database
node_auth_api -->|"authenticates"| node_auth_core
node_auth_api -->|"reads and writes"| node_database
node_inspection_api -->|"queries records"| node_database
node_product_api -->|"queries catalog"| node_database
node_product_api -->|"serves rule library"| node_rules
node_analytics_api -->|"queries metrics"| node_database
node_report_api -->|"loads inspection data"| node_database
node_report_api -->|"generates PDF"| node_pdf
node_report_api -->|"generates DOCX"| node_docx
node_report_api -->|"reads audit records"| node_models
node_main -->|"registers routes"| node_auth_api
node_main -->|"registers routes"| node_scan_api
node_main -->|"registers routes"| node_inspection_api

click node_app "https://github.com/sustik78/sih_2026/blob/main/frontend/src/App.jsx"
click node_login "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/LoginPage.jsx"
click node_auth_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/context/AuthContext.jsx"
click node_accessibility "https://github.com/sustik78/sih_2026/blob/main/frontend/src/context/AccessibilityContext.jsx"
click node_scan_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/ScanStudioPage.jsx"
click node_inspection_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/InspectionDetailPage.jsx"
click node_dashboard_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/DashboardPage.jsx"
click node_history_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/InspectionHistoryPage.jsx"
click node_product_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/ProductRepositoryPage.jsx"
click node_rules_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/RuleLibraryPage.jsx"
click node_audit_ui "https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/AuditTrailPage.jsx"
click node_preprocess "https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/preprocessor.py"
click node_ocr "https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/ocr_engine.py"
click node_extract "https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/declaration_extractor.py"
click node_compliance "https://github.com/sustik78/sih_2026/blob/main/backend/app/compliance_engine/engine.py"
click node_rules "https://github.com/sustik78/sih_2026/blob/main/backend/app/compliance_engine/rule_definitions.py"
click node_scoring "https://github.com/sustik78/sih_2026/blob/main/backend/app/compliance_engine/scoring.py"
click node_evidence "https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/visual_evidence.py"
click node_scan_api "https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/scan_routes.py"
click node_auth_api "https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/auth_routes.py"
click node_auth_core "https://github.com/sustik78/sih_2026/blob/main/backend/app/auth.py"
click node_inspection_api "https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/inspection_routes.py"
click node_product_api "https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/product_routes.py"
click node_analytics_api "https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/analytics_routes.py"
click node_report_api "https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/report_routes.py"
click node_pdf "https://github.com/sustik78/sih_2026/blob/main/backend/app/reports/pdf_report.py"
click node_docx "https://github.com/sustik78/sih_2026/blob/main/backend/app/reports/docx_report.py"
click node_models "https://github.com/sustik78/sih_2026/blob/main/backend/app/models.py"
click node_database "https://github.com/sustik78/sih_2026/blob/main/backend/app/database.py"
click node_api_client "https://github.com/sustik78/sih_2026/blob/main/frontend/src/utils/api.js"
click node_main "https://github.com/sustik78/sih_2026/blob/main/backend/app/main.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_app,node_login,node_auth_ui,node_accessibility,node_scan_ui,node_inspection_ui,node_dashboard_ui,node_history_ui,node_product_ui,node_rules_ui,node_audit_ui,node_api_client toneBlue
class node_preprocess,node_ocr,node_extract,node_compliance,node_rules,node_scoring,node_evidence,node_scan_api toneAmber
class node_auth_api,node_auth_core,node_models,node_database,node_main toneMint
class node_inspection_api,node_product_api,node_analytics_api,node_report_api,node_pdf,node_docx toneRose
class node_inspector toneIndigo
```

## Components

### Inspector application

- [Application shell](https://github.com/sustik78/sih_2026/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Sign-in](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/LoginPage.jsx): `frontend/src/pages/LoginPage.jsx`
- [Auth context](https://github.com/sustik78/sih_2026/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Accessibility settings](https://github.com/sustik78/sih_2026/blob/main/frontend/src/context/AccessibilityContext.jsx): `frontend/src/context/AccessibilityContext.jsx`
- [Scan studio](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/ScanStudioPage.jsx): `frontend/src/pages/ScanStudioPage.jsx`
- [Inspection views](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/InspectionDetailPage.jsx): `frontend/src/pages/InspectionDetailPage.jsx`
- [Dashboard](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/DashboardPage.jsx): `frontend/src/pages/DashboardPage.jsx`
- [Inspection history](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/InspectionHistoryPage.jsx): `frontend/src/pages/InspectionHistoryPage.jsx`
- [Product repository](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/ProductRepositoryPage.jsx): `frontend/src/pages/ProductRepositoryPage.jsx`
- [Rule library](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/RuleLibraryPage.jsx): `frontend/src/pages/RuleLibraryPage.jsx`
- [Audit trail view](https://github.com/sustik78/sih_2026/blob/main/frontend/src/pages/AuditTrailPage.jsx): `frontend/src/pages/AuditTrailPage.jsx`
- [Frontend API client](https://github.com/sustik78/sih_2026/blob/main/frontend/src/utils/api.js): `frontend/src/utils/api.js`

### Inspection pipeline

- [Image preprocessing](https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/preprocessor.py): `backend/app/ai_engine/preprocessor.py`
- [OCR detection](https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/ocr_engine.py): `backend/app/ai_engine/ocr_engine.py`
- [Declaration extraction](https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/declaration_extractor.py): `backend/app/ai_engine/declaration_extractor.py`
- [Rule evaluation](https://github.com/sustik78/sih_2026/blob/main/backend/app/compliance_engine/engine.py): `backend/app/compliance_engine/engine.py`
- [Statutory rule definitions](https://github.com/sustik78/sih_2026/blob/main/backend/app/compliance_engine/rule_definitions.py): `backend/app/compliance_engine/rule_definitions.py`
- [Compliance scoring](https://github.com/sustik78/sih_2026/blob/main/backend/app/compliance_engine/scoring.py): `backend/app/compliance_engine/scoring.py`
- [Visual evidence](https://github.com/sustik78/sih_2026/blob/main/backend/app/ai_engine/visual_evidence.py): `backend/app/ai_engine/visual_evidence.py`
- [Scan orchestration](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/scan_routes.py): `backend/app/routes/scan_routes.py`

### Access and records

- [Authentication API](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/auth_routes.py): `backend/app/routes/auth_routes.py`
- [Token and access control](https://github.com/sustik78/sih_2026/blob/main/backend/app/auth.py): `backend/app/auth.py`
- [Domain records](https://github.com/sustik78/sih_2026/blob/main/backend/app/models.py): `backend/app/models.py`
- [Application database](https://github.com/sustik78/sih_2026/blob/main/backend/app/database.py): `backend/app/database.py`
- [API application](https://github.com/sustik78/sih_2026/blob/main/backend/app/main.py): `backend/app/main.py`

### Review and outputs

- [Inspection records API](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/inspection_routes.py): `backend/app/routes/inspection_routes.py`
- [Products and rules API](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/product_routes.py): `backend/app/routes/product_routes.py`
- [Analytics API](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/analytics_routes.py): `backend/app/routes/analytics_routes.py`
- [Reports and audit API](https://github.com/sustik78/sih_2026/blob/main/backend/app/routes/report_routes.py): `backend/app/routes/report_routes.py`
- [PDF report generator](https://github.com/sustik78/sih_2026/blob/main/backend/app/reports/pdf_report.py): `backend/app/reports/pdf_report.py`
- [DOCX report generator](https://github.com/sustik78/sih_2026/blob/main/backend/app/reports/docx_report.py): `backend/app/reports/docx_report.py`

### Other components

- **Inspector**

## Connections

- Inspector → Application shell: uses
- Application shell → Sign-in: renders
- Application shell → Scan studio: routes to
- Application shell → Inspection views: routes to
- Application shell → Dashboard: routes to
- Application shell → Inspection history: routes to
- Application shell → Product repository: routes to
- Application shell → Rule library: routes to
- Application shell → Audit trail view: routes to
- Application shell → Auth context: provides context
- Application shell → Accessibility settings: provides context
- Sign-in → Auth context: signs in through
- Auth context → Frontend API client: submits credentials
- Scan studio → Frontend API client: submits scan
- Inspection views → Frontend API client: requests details
- Inspection history → Frontend API client: requests history
- Dashboard → Frontend API client: requests analytics
- Product repository → Frontend API client: searches products
- Rule library → Frontend API client: requests rules
- Audit trail view → Frontend API client: requests logs
- Frontend API client → Authentication API: calls
- Frontend API client → Scan orchestration: calls
- Frontend API client → Inspection records API: calls
- Frontend API client → Products and rules API: calls
- Frontend API client → Analytics API: calls
- Frontend API client → Reports and audit API: calls
- Scan orchestration → Image preprocessing: preprocesses image
- Scan orchestration → OCR detection: runs OCR
- Scan orchestration → Declaration extraction: extracts declarations
- Scan orchestration → Rule evaluation: evaluates compliance
- Scan orchestration → Compliance scoring: scores results
- Scan orchestration → Visual evidence: builds overlays
- Rule evaluation → Statutory rule definitions: evaluates against
- Scan orchestration → Domain records: persists inspection
- Scan orchestration → Application database: writes records
- Authentication API → Token and access control: authenticates
- Authentication API → Application database: reads and writes
- Inspection records API → Application database: queries records
- Products and rules API → Application database: queries catalog
- Products and rules API → Statutory rule definitions: serves rule library
- Analytics API → Application database: queries metrics
- Reports and audit API → Application database: loads inspection data
- Reports and audit API → PDF report generator: generates PDF
- Reports and audit API → DOCX report generator: generates DOCX
- Reports and audit API → Domain records: reads audit records
- API application → Authentication API: registers routes
- API application → Scan orchestration: registers routes
- API application → Inspection records API: registers routes
