How thowdan/sffs-graduation-project- works
RoboFireFighter is a cross-platform Flutter app for monitoring and controlling a firefighting robot. The primary workflow is that the dashboard requests sensor updates, the sensor service polls and parses responses into typed readings, and the UI displays live status and history. Users can also authenticate, inspect devices and maps, view camera feeds, and deploy or control the robot. The README documents the service-locator wiring and reactive streams; sampled source did not include Dart implementation, so uncertain screen-to-service links are omitted.
Main entry points: sensor_service.dart Sensor polling · robot_service.dart Robot commands · dashboard_screen.dart Dashboard · service_locator.dart Service locator
Components 22
User interface
- Dashboard
lib/screens/dashboard_screen.dart - Sensor views
lib/screens/sensors_list_screen.dart - History view
lib/screens/history_screen.dart - Auth screens
lib/screens/login_screen.dart - Robot controls
lib/screens/deploy_robot_screen.dart - Camera feed
lib/widgets/live_camera_feed.dart
Domain and services
- Sensor polling
lib/services/sensor_service.dart - Response parser
lib/services/sensor_response_parser.dart - Reading factory
lib/models/sensor_reading.dart - Sensor policy
lib/domain/sensor_thresholds.dart - Robot commands
lib/services/robot_service.dart - Camera service
lib/services/camera_feed_service.dart - Notifications
lib/services/notification_service.dart - HTTP client
lib/services/http_client_service.dart
Configuration and state
- Service locator
lib/config/service_locator.dart - App configuration
lib/config/app_config.dart - Local preferences
lib/utils/notification_preferences.dart
Other components
- User
- Supabase
- Robot API
- Sensor endpoints
- Camera endpoint
Connections 26
- User → Dashboard: opens
- User → Auth screens: authenticates
- User → Robot controls: controls
- Dashboard → Sensor polling: requests updates
- Sensor views → Sensor polling: listens to readings
- History view → Sensor polling: reads history
- Sensor polling → Sensor endpoints: polls
- Sensor polling → Response parser: decodes responses
- Response parser → Reading factory: creates readings
- Reading factory → Sensor policy: classifies values
- Sensor polling → Dashboard: publishes stream
- Robot controls → Robot commands: sends commands
- Robot commands → Robot API: dispatches commands
- Robot commands → Sensor polling: adapts readings
- Dashboard → Camera feed: displays feed
- Camera feed → Camera service: loads feed
- Camera service → Camera endpoint: reads stream
- Auth screens → Supabase: authenticates
- Service locator → Sensor polling: wires service
- Service locator → Robot commands: wires service
- Service locator → HTTP client: wires client
- Sensor polling → HTTP client: uses client
- Robot commands → HTTP client: uses client
- Sensor polling → App configuration: reads endpoints
- Robot commands → App configuration: reads settings
- Notifications → Local preferences: reads preferences