# prabhakarmaganti/tracegaurd architecture

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

## Overview

TraceGuard captures manufacturing custody from material receiving and production through batch genealogy, quality defects, targeted recall containment, and compliance evidence. Operators and quality, warehouse, and management users work through the browser UI; its modules call FastAPI endpoints, whose routers delegate business operations to shared CRUD logic and persist relational records. The README documents reporting, audit logs, master data, and QR labels as product capabilities. Some backend implementations were not sampled, so those branches are shown at the documented subsystem level without speculative internal call chains.

Main entry points: [`frontend/js/app.js`](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/app.js) (UI Controller), [`backend/main.py`](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/main.py) (FastAPI App), [`backend/crud.py`](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/crud.py) (Domain Operations), [`frontend/js/trace.js`](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/trace.js) (Trace UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Plant Interface"]
  node_browser["Browser UI<br/>[index.html]"]
  node_app_controller["UI Controller<br/>[app.js]"]
  node_dashboard_ui["Dashboard UI<br/>[dashboard.js]"]
  node_batch_ui["Batch UI<br/>[batches.js]"]
  node_trace_ui["Trace UI<br/>[trace.js]"]
  node_materials_ui["Materials UI<br/>[materials.js]"]
  node_defects_ui["Defects UI<br/>[defects.js]"]
  node_recalls_ui["Recall UI<br/>[recalls.js]"]
  node_reports_ui["Reports UI<br/>[reports.js]"]
  node_master_ui["Master Data UI<br/>[master_data.js]"]
end

subgraph group_operations["Production Operations"]
  node_batch_api["Batch Endpoints<br/>[batches.py]"]
  node_material_api["Material Endpoints<br/>[materials.py]"]
  node_master_api["Master Data Endpoints<br/>[master_data.py]"]
  node_trace_api["Trace Endpoints<br/>[trace.py]"]
end

subgraph group_quality["Quality and Recall"]
  node_dashboard_api["Dashboard Endpoints<br/>[dashboard.py]"]
  node_defect_api["Defect Endpoints<br/>[defects.py]"]
  node_recall_api["Recall Endpoints<br/>[recalls.py]"]
  node_report_api["Report Endpoints<br/>[reports.py]"]
  node_audit_api["Audit Endpoints<br/>[audit.py]"]
end

subgraph group_platform["API and Persistence"]
  node_api["FastAPI App<br/>[main.py]"]
  node_crud["Domain Operations<br/>[crud.py]"]
  node_labels["Code and QR Labels<br/>[labels.py]"]
  node_reporting["Report Generation<br/>[reports.py]"]
  node_store[("SQLite Store<br/>[database.py]")]
end

node_plant_user(("Plant User"))

node_plant_user -->|"uses"| node_browser
node_browser -->|"loads"| node_app_controller
node_app_controller -->|"dispatches"| node_dashboard_ui
node_app_controller -->|"dispatches"| node_batch_ui
node_app_controller -->|"dispatches"| node_trace_ui
node_app_controller -->|"dispatches"| node_materials_ui
node_app_controller -->|"dispatches"| node_defects_ui
node_app_controller -->|"dispatches"| node_recalls_ui
node_app_controller -->|"dispatches"| node_reports_ui
node_app_controller -->|"dispatches"| node_master_ui
node_app_controller -->|"HTTP requests"| node_dashboard_api
node_dashboard_ui -->|"opens trace"| node_trace_ui
node_batch_ui -->|"HTTP requests"| node_batch_api
node_batch_ui -->|"loads choices"| node_master_api
node_trace_ui -->|"HTTP requests"| node_trace_api
node_trace_ui -->|"opens lot label"| node_materials_ui
node_materials_ui -->|"HTTP requests"| node_material_api
node_defects_ui -->|"HTTP requests"| node_defect_api
node_recalls_ui -->|"HTTP requests"| node_recall_api
node_reports_ui -->|"HTTP requests"| node_report_api
node_master_ui -->|"HTTP requests"| node_master_api
node_api -->|"registers routes"| node_batch_api
node_api -->|"registers routes"| node_material_api
node_api -->|"registers routes"| node_master_api
node_api -->|"registers routes"| node_trace_api
node_api -->|"registers routes"| node_dashboard_api
node_api -->|"registers routes"| node_defect_api
node_api -->|"registers routes"| node_recall_api
node_api -->|"registers routes"| node_report_api
node_api -->|"registers routes"| node_audit_api
node_batch_api -->|"runs batch operations"| node_crud
node_batch_api -->|"generates QR"| node_labels
node_material_api -->|"manages lots"| node_crud
node_material_api -->|"generates QR"| node_labels
node_master_api -->|"manages reference data"| node_crud
node_trace_api -->|"resolves genealogy"| node_crud
node_dashboard_api -->|"loads metrics"| node_crud
node_defect_api -->|"records defects"| node_crud
node_recall_api -->|"calculates containment"| node_crud
node_report_api -->|"generates exports"| node_reporting
node_audit_api -->|"loads audit events"| node_crud
node_crud -->|"reads and writes"| node_store
node_reporting -->|"reads records"| node_store

click node_browser "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/index.html"
click node_app_controller "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/app.js"
click node_dashboard_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/dashboard.js"
click node_batch_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/batches.js"
click node_trace_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/trace.js"
click node_materials_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/materials.js"
click node_defects_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/defects.js"
click node_recalls_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/recalls.js"
click node_reports_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/reports.js"
click node_master_ui "https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/master_data.js"
click node_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/main.py"
click node_batch_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/batches.py"
click node_material_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/materials.py"
click node_master_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/master_data.py"
click node_trace_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/trace.py"
click node_dashboard_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/dashboard.py"
click node_defect_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/defects.py"
click node_recall_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/recalls.py"
click node_report_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/reports.py"
click node_audit_api "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/audit.py"
click node_crud "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/crud.py"
click node_labels "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/labels.py"
click node_reporting "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/reports.py"
click node_store "https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/database.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_browser,node_app_controller,node_dashboard_ui,node_batch_ui,node_trace_ui,node_materials_ui,node_defects_ui,node_recalls_ui,node_reports_ui,node_master_ui,node_plant_user toneBlue
class node_batch_api,node_material_api,node_master_api,node_trace_api toneAmber
class node_dashboard_api,node_defect_api,node_recall_api,node_report_api,node_audit_api toneMint
class node_api,node_crud,node_labels,node_reporting,node_store toneRose
```

## Components

### Plant Interface

- [Browser UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/index.html): `frontend/index.html`
- [UI Controller](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/app.js): `frontend/js/app.js`
- [Dashboard UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/dashboard.js): `frontend/js/dashboard.js`
- [Batch UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/batches.js): `frontend/js/batches.js`
- [Trace UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/trace.js): `frontend/js/trace.js`
- [Materials UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/materials.js): `frontend/js/materials.js`
- [Defects UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/defects.js): `frontend/js/defects.js`
- [Recall UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/recalls.js): `frontend/js/recalls.js`
- [Reports UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/reports.js): `frontend/js/reports.js`
- [Master Data UI](https://github.com/prabhakarmaganti/tracegaurd/blob/main/frontend/js/master_data.js): `frontend/js/master_data.js`

### Production Operations

- [Batch Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/batches.py): `backend/routers/batches.py`
- [Material Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/materials.py): `backend/routers/materials.py`
- [Master Data Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/master_data.py): `backend/routers/master_data.py`
- [Trace Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/trace.py): `backend/routers/trace.py`

### Quality and Recall

- [Dashboard Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/dashboard.py): `backend/routers/dashboard.py`
- [Defect Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/defects.py): `backend/routers/defects.py`
- [Recall Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/recalls.py): `backend/routers/recalls.py`
- [Report Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/reports.py): `backend/routers/reports.py`
- [Audit Endpoints](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/routers/audit.py): `backend/routers/audit.py`

### API and Persistence

- [FastAPI App](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/main.py): `backend/main.py`
- [Domain Operations](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/crud.py): `backend/crud.py`
- [Code and QR Labels](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/labels.py): `backend/labels.py`
- [Report Generation](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/reports.py): `backend/reports.py`
- [SQLite Store](https://github.com/prabhakarmaganti/tracegaurd/blob/main/backend/database.py): `backend/database.py`

### Other components

- **Plant User**

## Connections

- Plant User → Browser UI: uses
- Browser UI → UI Controller: loads
- UI Controller → Dashboard UI: dispatches
- UI Controller → Batch UI: dispatches
- UI Controller → Trace UI: dispatches
- UI Controller → Materials UI: dispatches
- UI Controller → Defects UI: dispatches
- UI Controller → Recall UI: dispatches
- UI Controller → Reports UI: dispatches
- UI Controller → Master Data UI: dispatches
- UI Controller → Dashboard Endpoints: HTTP requests
- Dashboard UI → Trace UI: opens trace
- Batch UI → Batch Endpoints: HTTP requests
- Batch UI → Master Data Endpoints: loads choices
- Trace UI → Trace Endpoints: HTTP requests
- Trace UI → Materials UI: opens lot label
- Materials UI → Material Endpoints: HTTP requests
- Defects UI → Defect Endpoints: HTTP requests
- Recall UI → Recall Endpoints: HTTP requests
- Reports UI → Report Endpoints: HTTP requests
- Master Data UI → Master Data Endpoints: HTTP requests
- FastAPI App → Batch Endpoints: registers routes
- FastAPI App → Material Endpoints: registers routes
- FastAPI App → Master Data Endpoints: registers routes
- FastAPI App → Trace Endpoints: registers routes
- FastAPI App → Dashboard Endpoints: registers routes
- FastAPI App → Defect Endpoints: registers routes
- FastAPI App → Recall Endpoints: registers routes
- FastAPI App → Report Endpoints: registers routes
- FastAPI App → Audit Endpoints: registers routes
- Batch Endpoints → Domain Operations: runs batch operations
- Batch Endpoints → Code and QR Labels: generates QR
- Material Endpoints → Domain Operations: manages lots
- Material Endpoints → Code and QR Labels: generates QR
- Master Data Endpoints → Domain Operations: manages reference data
- Trace Endpoints → Domain Operations: resolves genealogy
- Dashboard Endpoints → Domain Operations: loads metrics
- Defect Endpoints → Domain Operations: records defects
- Recall Endpoints → Domain Operations: calculates containment
- Report Endpoints → Report Generation: generates exports
- Audit Endpoints → Domain Operations: loads audit events
- Domain Operations → SQLite Store: reads and writes
- Report Generation → SQLite Store: reads records
