How bhavenkanwalu25-dev/h2sense-main works
h2sense is a passive cumulative H₂S dosimetry product: workers identify a badge, capture its colorimetric strip, receive a validated dose/TWA estimate, and save a reading to an occupational record; supervisors manage workers, badges, calibration, settings, and exposure history. The graph reflects README capabilities plus sampled call sites and the CV pipeline. Endpoint wiring beyond the sampled routes is represented at the router level where the README or application mount establishes it.
Main entry points: api.ts API Client · App.tsx Role-based App · main.py FastAPI Application · pipeline.py Analysis Pipeline
Components 31
Worker and Supervisor UI
- Role-based App
frontend/src/App.tsx - Badge QR Scan
frontend/src/components/worker/WorkerQrScanView.tsx - Camera Scan
frontend/src/components/worker/WorkerCameraScanView.tsx - Reading Result
frontend/src/components/worker/WorkerScanResultView.tsx - API Client
frontend/src/services/api.ts
API and Records
- FastAPI Application
backend/app/main.py - Authentication
backend/app/api/endpoints/auth.py - Badge Registry
backend/app/api/endpoints/badges.py - CV Analyze Endpoint
backend/app/api/endpoints/cv.py - Reading Records
backend/app/api/endpoints/readings.py - Worker Dossiers
backend/app/api/endpoints/workers.py - Domain Models
backend/app/database/models.py - Dosimetry Database
backend/app/database/database.py
Dosimeter Analysis
- Analysis Pipeline
backend/cv/pipeline.py - Image Validation
backend/cv/validation.py - Badge Region Detection
backend/cv/detector.py - Optical Calibration
backend/cv/calibrator.py - Color Features
backend/cv/color_extractor.py - Expiry Validation
backend/cv/validation.py - Dose and TWA
backend/cv/exposure_engine.py - ML Predictor
backend/ml/predictor.py - Confidence Scoring
backend/cv/confidence.py
Operations and Calibration
- Supervisor Dashboard
frontend/src/components/DashboardView.tsx - Workforce Management
frontend/src/components/WorkforceView.tsx - Calibration Lab
frontend/src/components/CalibrationLabView.tsx - Safety Settings
frontend/src/components/SettingsView.tsx - Demo Scenarios
backend/app/api/endpoints/demo.py - Calibration API
backend/app/api/endpoints/calibration.py - Settings API
backend/app/api/endpoints/settings.py
Other components
- Worker
- Supervisor
Connections 46
- Worker → Role-based App: uses
- Supervisor → Role-based App: uses
- Role-based App → Badge QR Scan: opens scan
- Role-based App → Camera Scan: opens scan
- Badge QR Scan → API Client: verifies badge
- Camera Scan → API Client: submits image
- Camera Scan → Demo Scenarios: requests preset
- API Client → FastAPI Application: REST requests
- FastAPI Application → Authentication: dispatches
- FastAPI Application → Badge Registry: dispatches
- FastAPI Application → CV Analyze Endpoint: dispatches
- FastAPI Application → Reading Records: dispatches
- FastAPI Application → Worker Dossiers: dispatches
- FastAPI Application → Calibration API: dispatches
- FastAPI Application → Settings API: dispatches
- CV Analyze Endpoint → Analysis Pipeline: analyzes image
- Analysis Pipeline → Image Validation: validates image
- Analysis Pipeline → Badge Region Detection: detects regions
- Analysis Pipeline → Optical Calibration: calibrates colors
- Analysis Pipeline → Color Features: extracts features
- Analysis Pipeline → Expiry Validation: checks integrity
- Analysis Pipeline → Dose and TWA: estimates dose
- Analysis Pipeline → Confidence Scoring: scores result
- Dose and TWA → ML Predictor: predicts dose
- CV Analyze Endpoint → API Client: returns analysis
- API Client → Reading Result: provides estimate
- Reading Result → API Client: saves reading
- API Client → Reading Records: posts record
- Reading Records → Dosimetry Database: reads and writes
- Worker Dossiers → Dosimetry Database: reads and writes
- Badge Registry → Dosimetry Database: reads and writes
- Authentication → Dosimetry Database: reads and writes
- Dosimetry Database → Domain Models: persists entities
- Role-based App → Supervisor Dashboard: shows operations
- Role-based App → Workforce Management: manages workers
- Role-based App → Calibration Lab: opens calibration
- Role-based App → Safety Settings: opens settings
- Role-based App → API Client: loads summaries
- Supervisor Dashboard → API Client: loads metrics
- Workforce Management → API Client: manages dossiers
- Calibration Lab → API Client: uses calibration
- API Client → Calibration API: calibration requests
- Safety Settings → API Client: updates thresholds
- API Client → Settings API: settings requests
- API Client → Demo Scenarios: loads scenarios
- Demo Scenarios → Dosimetry Database: seeds demo data