# mirusnan2025it-del/h2s-wristband architecture

> Architecture diagram of the GitHub repository mirusnan2025it-del/h2s-wristband, 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/mirusnan2025it-del/h2s-wristband
- Repository: https://github.com/mirusnan2025it-del/h2s-wristband

## Overview

SIH11 is an H₂S safety-monitoring application: workers submit or capture a chemical test-strip image, the backend validates and analyzes it, and the result supports safety review and manager oversight. The graph follows the documented upload/live-analysis workflow and the sampled vision pipeline. It also includes the documented worker history, alerts, manager reporting, and calibration capabilities. Some API and vision modules were not sampled, so uncertain internal call relationships are omitted.

Main entry points: [`SIH11/backend/app/main.py`](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/main.py) (FastAPI Application), [`SIH11/frontend/src/App.jsx`](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/App.jsx) (Role-Based App), [`SIH11/frontend/src/services/api.js`](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/services/api.js) (API Client), [`SIH11/backend/app/vision/pipeline.py`](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/pipeline.py) (Vision Pipeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Worker and Manager UI"]
  node_app["Role-Based App<br/>[App.jsx]"]
  node_worker_submit["Image and Live Capture<br/>[WorkerUpload.jsx]"]
  node_live_capture["Live Frame Capture<br/>[WorkerLive.jsx]"]
  node_api_client["API Client<br/>[api.js]"]
  node_worker_review["Worker History and Alerts<br/>[WorkerHistory.jsx]"]
  node_manager_views["Manager Oversight"]
  node_calibration_ui["Calibration Controls"]
end

subgraph group_service["API and Access"]
  node_backend["FastAPI Application<br/>[main.py]"]
  node_auth_api["Authentication and Roles<br/>[auth.py]"]
  node_worker_api["Worker Endpoints<br/>[worker.py]"]
  node_analysis_api["Analysis Endpoints<br/>[analysis.py]"]
  node_manager_api["Manager Endpoints<br/>[manager.py]"]
  node_calibration_api["Calibration Endpoints<br/>[calibration.py]"]
end

subgraph group_vision["Strip Analysis"]
  node_pipeline["Vision Pipeline<br/>[pipeline.py]"]
  node_detector["YOLO Strip Detection<br/>[detector.py]"]
  node_quality["Image Quality Checks<br/>[quality.py]"]
  node_contamination["Dust Contamination<br/>[contamination.py]"]
  node_normalization["Strip Calibration<br/>[calibration.py]"]
  node_color["Color Analysis<br/>[color_analysis.py]"]
  node_expiry["Expiry Assessment<br/>[expiry.py]"]
  node_validation["Strip Validation<br/>[validation.py]"]
end

subgraph group_operations["Safety Operations"]
  node_database[("MongoDB or Memory Store<br/>[database.py]")]
  node_security["Security Utilities<br/>[security.py]"]
  node_dashboard["Risk, Reports and Worker Views"]
end

node_worker(("Worker"))
node_manager(("Manager"))

node_worker -->|"uses"| node_app
node_manager -->|"uses"| node_app
node_app -->|"routes to"| node_worker_submit
node_app -->|"routes to"| node_live_capture
node_app -->|"routes to"| node_worker_review
node_app -->|"routes to"| node_manager_views
node_app -->|"routes to"| node_calibration_ui
node_worker_submit -->|"uploads image"| node_api_client
node_live_capture -->|"submits frame"| node_api_client
node_worker_review -->|"requests records"| node_api_client
node_manager_views -->|"requests oversight data"| node_api_client
node_calibration_ui -->|"reads and updates"| node_api_client
node_api_client -->|"HTTP requests"| node_backend
node_backend -->|"registers router"| node_auth_api
node_backend -->|"registers router"| node_worker_api
node_backend -->|"registers router"| node_analysis_api
node_backend -->|"registers router"| node_manager_api
node_backend -->|"registers router"| node_calibration_api
node_backend -->|"initializes"| node_database
node_analysis_api -->|"runs analysis"| node_pipeline
node_pipeline -->|"detects strip"| node_detector
node_pipeline -->|"checks image"| node_quality
node_pipeline -->|"checks contamination"| node_contamination
node_pipeline -->|"normalizes colors"| node_normalization
node_worker_api -->|"reads and writes records"| node_database
node_manager_api -->|"reads operational data"| node_database
node_calibration_api -->|"reads and updates settings"| node_database
node_auth_api -->|"accesses users"| node_database
node_auth_api -->|"uses security functions"| node_security
node_manager_views -->|"shows oversight"| node_dashboard
node_dashboard -->|"fetches dashboard data"| node_api_client

click node_app "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/App.jsx"
click node_worker_submit "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/worker/WorkerUpload.jsx"
click node_live_capture "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/worker/WorkerLive.jsx"
click node_api_client "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/services/api.js"
click node_worker_review "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/worker/WorkerHistory.jsx"
click node_manager_views "https://github.com/mirusnan2025it-del/h2s-wristband/tree/main/SIH11/frontend/src/pages/manager"
click node_calibration_ui "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/manager/ManagerCalibration.jsx"
click node_backend "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/main.py"
click node_auth_api "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/auth.py"
click node_worker_api "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/worker.py"
click node_analysis_api "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/analysis.py"
click node_manager_api "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/manager.py"
click node_calibration_api "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/calibration.py"
click node_pipeline "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/pipeline.py"
click node_detector "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/ml/yolov11/detector.py"
click node_quality "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/quality.py"
click node_contamination "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/contamination.py"
click node_normalization "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/calibration.py"
click node_color "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/color_analysis.py"
click node_expiry "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/expiry.py"
click node_validation "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/validation.py"
click node_database "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/core/database.py"
click node_security "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/core/security.py"
click node_dashboard "https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/manager/ManagerDashboard.jsx"

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_worker_submit,node_live_capture,node_api_client,node_worker_review,node_manager_views,node_calibration_ui toneBlue
class node_backend,node_auth_api,node_worker_api,node_analysis_api,node_manager_api,node_calibration_api toneAmber
class node_pipeline,node_detector,node_quality,node_contamination,node_normalization,node_color,node_expiry,node_validation toneMint
class node_database,node_security,node_dashboard,node_worker toneRose
class node_manager toneIndigo
```

## Components

### Worker and Manager UI

- [Role-Based App](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/App.jsx): `SIH11/frontend/src/App.jsx`
- [Image and Live Capture](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/worker/WorkerUpload.jsx): `SIH11/frontend/src/pages/worker/WorkerUpload.jsx`
- [Live Frame Capture](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/worker/WorkerLive.jsx): `SIH11/frontend/src/pages/worker/WorkerLive.jsx`
- [API Client](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/services/api.js): `SIH11/frontend/src/services/api.js`
- [Worker History and Alerts](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/worker/WorkerHistory.jsx): `SIH11/frontend/src/pages/worker/WorkerHistory.jsx`
- [Manager Oversight](https://github.com/mirusnan2025it-del/h2s-wristband/tree/main/SIH11/frontend/src/pages/manager): `SIH11/frontend/src/pages/manager`
- [Calibration Controls](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/manager/ManagerCalibration.jsx): `SIH11/frontend/src/pages/manager/ManagerCalibration.jsx`

### API and Access

- [FastAPI Application](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/main.py): `SIH11/backend/app/main.py`
- [Authentication and Roles](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/auth.py): `SIH11/backend/app/api/auth.py`
- [Worker Endpoints](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/worker.py): `SIH11/backend/app/api/worker.py`
- [Analysis Endpoints](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/analysis.py): `SIH11/backend/app/api/analysis.py`
- [Manager Endpoints](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/manager.py): `SIH11/backend/app/api/manager.py`
- [Calibration Endpoints](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/api/calibration.py): `SIH11/backend/app/api/calibration.py`

### Strip Analysis

- [Vision Pipeline](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/pipeline.py): `SIH11/backend/app/vision/pipeline.py`
- [YOLO Strip Detection](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/ml/yolov11/detector.py): `SIH11/backend/app/ml/yolov11/detector.py`
- [Image Quality Checks](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/quality.py): `SIH11/backend/app/vision/quality.py`
- [Dust Contamination](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/contamination.py): `SIH11/backend/app/vision/contamination.py`
- [Strip Calibration](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/calibration.py): `SIH11/backend/app/vision/calibration.py`
- [Color Analysis](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/color_analysis.py): `SIH11/backend/app/vision/color_analysis.py`
- [Expiry Assessment](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/expiry.py): `SIH11/backend/app/vision/expiry.py`
- [Strip Validation](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/vision/validation.py): `SIH11/backend/app/vision/validation.py`

### Safety Operations

- [MongoDB or Memory Store](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/core/database.py): `SIH11/backend/app/core/database.py`
- [Security Utilities](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/backend/app/core/security.py): `SIH11/backend/app/core/security.py`
- [Risk, Reports and Worker Views](https://github.com/mirusnan2025it-del/h2s-wristband/blob/main/SIH11/frontend/src/pages/manager/ManagerDashboard.jsx): `SIH11/frontend/src/pages/manager/ManagerDashboard.jsx`

### Other components

- **Worker**
- **Manager**

## Connections

- Worker → Role-Based App: uses
- Manager → Role-Based App: uses
- Role-Based App → Image and Live Capture: routes to
- Role-Based App → Live Frame Capture: routes to
- Role-Based App → Worker History and Alerts: routes to
- Role-Based App → Manager Oversight: routes to
- Role-Based App → Calibration Controls: routes to
- Image and Live Capture → API Client: uploads image
- Live Frame Capture → API Client: submits frame
- Worker History and Alerts → API Client: requests records
- Manager Oversight → API Client: requests oversight data
- Calibration Controls → API Client: reads and updates
- API Client → FastAPI Application: HTTP requests
- FastAPI Application → Authentication and Roles: registers router
- FastAPI Application → Worker Endpoints: registers router
- FastAPI Application → Analysis Endpoints: registers router
- FastAPI Application → Manager Endpoints: registers router
- FastAPI Application → Calibration Endpoints: registers router
- FastAPI Application → MongoDB or Memory Store: initializes
- Analysis Endpoints → Vision Pipeline: runs analysis
- Vision Pipeline → YOLO Strip Detection: detects strip
- Vision Pipeline → Image Quality Checks: checks image
- Vision Pipeline → Dust Contamination: checks contamination
- Vision Pipeline → Strip Calibration: normalizes colors
- Worker Endpoints → MongoDB or Memory Store: reads and writes records
- Manager Endpoints → MongoDB or Memory Store: reads operational data
- Calibration Endpoints → MongoDB or Memory Store: reads and updates settings
- Authentication and Roles → MongoDB or Memory Store: accesses users
- Authentication and Roles → Security Utilities: uses security functions
- Manager Oversight → Risk, Reports and Worker Views: shows oversight
- Risk, Reports and Worker Views → API Client: fetches dashboard data
