# anshul-anuragi/metrology-mitra architecture

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

- Interactive diagram: https://gitdiagram.com/anshul-anuragi/metrology-mitra
- Repository: https://github.com/anshul-anuragi/metrology-mitra

## Overview

MetrologyMitra is a legal-metrology inspection and statutory-enforcement system. Officers capture package evidence, the backend extracts and fuses declarations, evaluates statutory rules, presents results for officer review, and supports enforcement records and reports. The README documents additional enforcement capabilities whose implementation details were not sampled; those are represented at their documented module boundaries. The workflow links reflect the sampled pipeline and review code plus explicit README descriptions.

Main entry points: [`backend/app/api/v1/router.py`](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/router.py) (API Router), [`backend/app/services/pipeline_service.py`](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/pipeline_service.py) (Inspection Pipeline), [`backend/app/db/session.py`](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/db/session.py) (Application Database), [`frontend/src/lib/api.ts`](https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/lib/api.ts) (API Client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_field["Inspector Workstation"]
  node_workstation["Inspector Workstation<br/>[page.tsx]"]
  node_capture["Field Capture<br/>[page.tsx]"]
  node_review_ui["Decision Review"]
  node_api_client["API Client<br/>[api.ts]"]
end

subgraph group_api["API and Workflow"]
  node_api_router["API Router<br/>[router.py]"]
  node_inspection_api["Inspection API<br/>[inspections.py]"]
  node_pipeline["Inspection Pipeline"]
  node_review_api["Review and Finalize API<br/>[inspections.py]"]
end

subgraph group_analysis["Evidence and Decisions"]
  node_ocr["OCR and Barcode"]
  node_quality["Image Quality Gate<br/>[image_quality.py]"]
  node_fusion["Evidence Fusion"]
  node_rules["Statutory Rule Engine<br/>[rule_engine.py]"]
  node_listing["Digital Listing Check<br/>[listing_service.py]"]
end

subgraph group_enforcement["Enforcement Operations"]
  node_registration["Packer Registry<br/>[registrations.py]"]
  node_seizure["Seizures and Panchnama<br/>[seizures.py]"]
  node_dossier["Investigation Dossiers<br/>[dossiers.py]"]
  node_gravimetric["Gravimetric Analysis<br/>[gravimetric.py]"]
  node_enforcement_api["Enforcement Workflows<br/>[enforcement.py]"]
end

subgraph group_records["Records and Integrity"]
  node_audit["Audit Trail<br/>[audit_service.py]"]
  node_storage["Evidence and Report Storage<br/>[storage.py]"]
  node_database[("Application Database<br/>[session.py]")]
  node_reports["Reports and Export<br/>[report_service.py]"]
end

node_officer(("Legal Metrology Officer"))
node_gemini["Gemini Vision OCR"]
node_marketplace["Digital Marketplace Data"]

node_officer -->|"uses"| node_workstation
node_officer -->|"captures evidence"| node_capture
node_officer -->|"adjudicates"| node_review_ui
node_capture -->|"submits capture"| node_api_client
node_review_ui -->|"submits review"| node_api_client
node_api_client -->|"calls API"| node_inspection_api
node_api_client -->|"submits decisions"| node_review_api
node_api_router -->|"dispatches"| node_inspection_api
node_inspection_api -->|"runs inspection"| node_pipeline
node_pipeline -->|"extracts text and barcodes"| node_ocr
node_pipeline -->|"checks image quality"| node_quality
node_pipeline -->|"fuses evidence"| node_fusion
node_pipeline -->|"evaluates compliance"| node_rules
node_rules -->|"cross-checks listings"| node_listing
node_listing -.->|"checks listing data"| node_marketplace
node_ocr -.->|"requests vision OCR"| node_gemini
node_pipeline -->|"reads and writes"| node_database
node_review_api -->|"updates inspection"| node_database
node_review_api -->|"records actions"| node_audit
node_inspection_api -->|"stores evidence"| node_storage
node_reports -->|"stores reports"| node_storage
node_api_router -->|"dispatches"| node_registration
node_api_router -->|"dispatches"| node_seizure
node_api_router -->|"dispatches"| node_dossier
node_api_router -->|"dispatches"| node_gravimetric
node_api_router -->|"dispatches"| node_enforcement_api
node_registration -->|"records registry"| node_database
node_seizure -->|"records seizure"| node_database
node_dossier -->|"records dossier"| node_database
node_gravimetric -->|"records analysis"| node_database
node_enforcement_api -->|"records enforcement"| node_database

click node_workstation "https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/app/inspector/page.tsx"
click node_capture "https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/app/inspector/scan/page.tsx"
click node_review_ui "https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/components/ReviewWorkspace.tsx"
click node_api_client "https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/lib/api.ts"
click node_api_router "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/router.py"
click node_inspection_api "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/inspections.py"
click node_pipeline "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/pipeline_service.py"
click node_ocr "https://github.com/anshul-anuragi/metrology-mitra/tree/main/backend/app/services/ocr"
click node_quality "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/image_quality.py"
click node_fusion "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/evidence_fusion_service.py"
click node_rules "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/rule_engine.py"
click node_listing "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/listing_service.py"
click node_review_api "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/inspections.py"
click node_audit "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/audit_service.py"
click node_storage "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/storage.py"
click node_database "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/db/session.py"
click node_registration "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/registrations.py"
click node_seizure "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/seizures.py"
click node_dossier "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/dossiers.py"
click node_gravimetric "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/gravimetric.py"
click node_enforcement_api "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/enforcement.py"
click node_reports "https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/report_service.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_workstation,node_capture,node_review_ui,node_api_client toneBlue
class node_api_router,node_inspection_api,node_pipeline,node_review_api toneAmber
class node_ocr,node_quality,node_fusion,node_rules,node_listing toneMint
class node_registration,node_seizure,node_dossier,node_gravimetric,node_enforcement_api toneRose
class node_audit,node_storage,node_database,node_reports,node_officer,node_gemini,node_marketplace toneIndigo
```

## Components

### Inspector Workstation

- [Inspector Workstation](https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/app/inspector/page.tsx): `frontend/src/app/inspector/page.tsx`
- [Field Capture](https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/app/inspector/scan/page.tsx): `frontend/src/app/inspector/scan/page.tsx`
- [Decision Review](https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/components/ReviewWorkspace.tsx): `frontend/src/components/ReviewWorkspace.tsx`
- [API Client](https://github.com/anshul-anuragi/metrology-mitra/blob/main/frontend/src/lib/api.ts): `frontend/src/lib/api.ts`

### API and Workflow

- [API Router](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/router.py): `backend/app/api/v1/router.py`
- [Inspection API](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/inspections.py): `backend/app/api/v1/endpoints/inspections.py`
- [Inspection Pipeline](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/pipeline_service.py): `backend/app/services/pipeline_service.py`
- [Review and Finalize API](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/inspections.py): `backend/app/api/v1/endpoints/inspections.py`

### Evidence and Decisions

- [OCR and Barcode](https://github.com/anshul-anuragi/metrology-mitra/tree/main/backend/app/services/ocr): `backend/app/services/ocr`
- [Image Quality Gate](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/image_quality.py): `backend/app/services/image_quality.py`
- [Evidence Fusion](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/evidence_fusion_service.py): `backend/app/services/evidence_fusion_service.py`
- [Statutory Rule Engine](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/rule_engine.py): `backend/app/services/rule_engine.py`
- [Digital Listing Check](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/listing_service.py): `backend/app/services/listing_service.py`

### Enforcement Operations

- [Packer Registry](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/registrations.py): `backend/app/api/v1/endpoints/registrations.py`
- [Seizures and Panchnama](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/seizures.py): `backend/app/api/v1/endpoints/seizures.py`
- [Investigation Dossiers](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/dossiers.py): `backend/app/api/v1/endpoints/dossiers.py`
- [Gravimetric Analysis](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/gravimetric.py): `backend/app/api/v1/endpoints/gravimetric.py`
- [Enforcement Workflows](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/api/v1/endpoints/enforcement.py): `backend/app/api/v1/endpoints/enforcement.py`

### Records and Integrity

- [Audit Trail](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/audit_service.py): `backend/app/services/audit_service.py`
- [Evidence and Report Storage](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/storage.py): `backend/app/services/storage.py`
- [Application Database](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/db/session.py): `backend/app/db/session.py`
- [Reports and Export](https://github.com/anshul-anuragi/metrology-mitra/blob/main/backend/app/services/report_service.py): `backend/app/services/report_service.py`

### Other components

- **Legal Metrology Officer**
- **Gemini Vision OCR**
- **Digital Marketplace Data**

## Connections

- Legal Metrology Officer → Inspector Workstation: uses
- Legal Metrology Officer → Field Capture: captures evidence
- Legal Metrology Officer → Decision Review: adjudicates
- Field Capture → API Client: submits capture
- Decision Review → API Client: submits review
- API Client → Inspection API: calls API
- API Client → Review and Finalize API: submits decisions
- API Router → Inspection API: dispatches
- Inspection API → Inspection Pipeline: runs inspection
- Inspection Pipeline → OCR and Barcode: extracts text and barcodes
- Inspection Pipeline → Image Quality Gate: checks image quality
- Inspection Pipeline → Evidence Fusion: fuses evidence
- Inspection Pipeline → Statutory Rule Engine: evaluates compliance
- Statutory Rule Engine → Digital Listing Check: cross-checks listings
- Digital Listing Check → Digital Marketplace Data: checks listing data
- OCR and Barcode → Gemini Vision OCR: requests vision OCR
- Inspection Pipeline → Application Database: reads and writes
- Review and Finalize API → Application Database: updates inspection
- Review and Finalize API → Audit Trail: records actions
- Inspection API → Evidence and Report Storage: stores evidence
- Reports and Export → Evidence and Report Storage: stores reports
- API Router → Packer Registry: dispatches
- API Router → Seizures and Panchnama: dispatches
- API Router → Investigation Dossiers: dispatches
- API Router → Gravimetric Analysis: dispatches
- API Router → Enforcement Workflows: dispatches
- Packer Registry → Application Database: records registry
- Seizures and Panchnama → Application Database: records seizure
- Investigation Dossiers → Application Database: records dossier
- Gravimetric Analysis → Application Database: records analysis
- Enforcement Workflows → Application Database: records enforcement
