How ayanatiach/h2s_detector works
H₂S Detector is a Flutter app for reading colorimetric dosimeter strips and monitoring worker exposure. The documented workflow runs from camera capture and lighting validation through on-device color analysis, exposure classification, result review, and saving; synchronization uploads readings or queues them offline. The tree also indicates dashboard, facility-map, and team-safety features. The supplied source excerpts are native platform boilerplate, so implementation-level wiring beyond the README workflow is uncertain; those links are omitted.
Main entry points: main_shell.dart Main shell · scanner_screen.dart Dosimeter scanner · cielab_engine.dart Color analysis · supabase_service.dart Supabase sync
Components 23
Capture and analysis
- Dosimeter scanner
lib/features/scanner/scanner_screen.dart - Camera provider
lib/providers/camera_provider.dart - Lighting analysis
lib/core/vision/lighting_analyzer.dart - Color analysis
lib/core/vision/cielab_engine.dart - Color extraction
lib/core/vision/color_extractor.dart - Delta E calculation
lib/core/vision/delta_e_calculator.dart - Baseline settings
lib/providers/baseline_provider.dart - Exposure thresholds
lib/core/constants/exposure_thresholds.dart - Scan state
lib/providers/scan_provider.dart - Scan result
lib/features/scanner/scan_result_screen.dart
Readings and sync
- Reading history
lib/providers/readings_provider.dart - Sync state
lib/providers/sync_provider.dart - Offline queue
lib/features/sync/offline_queue_service.dart - Supabase sync
lib/features/sync/supabase_service.dart
Safety monitoring
- Safety dashboard
lib/features/dashboard/dashboard_screen.dart - Exposure timeline
lib/features/dashboard/exposure_chart_card.dart - Gas detector graph
lib/features/dashboard/views/gas_detector_graph_screen.dart - Facility map
lib/features/map/views/facility_map.dart - Map telemetry
lib/features/map/providers/facility_map_provider.dart - Team safety roster
lib/features/team/views/team_safety_screen.dart
App experience
- Main shell
lib/features/shell/main_shell.dart
Other components
- Worker
- Supabase
Connections 25
- Worker → Main shell: opens
- Main shell → Dosimeter scanner: navigates to
- Dosimeter scanner → Camera provider: captures frame
- Dosimeter scanner → Lighting analysis: checks lighting
- Dosimeter scanner → Color analysis: submits image
- Color analysis → Color extraction: extracts pixels
- Color analysis → Baseline settings: reads baseline
- Color analysis → Delta E calculation: computes color shift
- Color analysis → Exposure thresholds: classifies exposure
- Dosimeter scanner → Scan state: updates scan
- Scan state → Scan result: provides result
- Scan result → Reading history: saves reading
- Reading history → Sync state: updates sync
- Sync state → Supabase sync: dispatches sync
- Supabase sync → Offline queue: queues offline
- Supabase sync → Supabase: uploads reading
- Offline queue → Supabase sync: flushes queued
- Supabase sync → Supabase: flushes to
- Main shell → Safety dashboard: navigates to
- Safety dashboard → Reading history: displays readings
- Safety dashboard → Exposure timeline: shows timeline
- Main shell → Gas detector graph: navigates to
- Main shell → Facility map: navigates to
- Facility map → Map telemetry: reads telemetry
- Main shell → Team safety roster: navigates to