Fleet Monitoring App
Real-time operator console for monitoring and controlling fleets of autonomous ground robots
Overview
Real-time web-based operator console for monitoring and controlling a fleet of autonomous ground robots. Bridges a Python/FastAPI backend with a plain HTML/CSS/JS frontend over REST and WebSocket connections, with flat-file CSV storage keeping the stack lightweight and easy to deploy.
Technical Implementation
⚠️ Note on Source Code
Due to employer confidentiality, source code cannot be shared. This web page contains a
sanitized technical overview and demo materials.
- Backend: Async REST API and WebSocket server built with FastAPI, handling auth and real-time message routing
- Real-time communication: Singleton WebSocket hub fans out telemetry and commands to robot agents and browser clients simultaneously
- Authentication: JWT-based auth stored as an HttpOnly cookie, verified server-side on every protected request
- Authorization: Middleware guards HTML page routes and blocks non-GET API calls for guest users
- Mission history: WebSocket hub automatically derives history records from the telemetry stream (start/end time, battery consumption, distance, duration)
- Geospatial: Mission circuits stored as GeoJSON and rendered on an interactive map via the Google Maps API
Key Features
- Live fleet dashboard: Real-time view of all active robots with telemetry updates pushed over WebSocket and automatic client reconnection
- Mission management: Schedule missions against geographic circuits, track active mission status, and browse mission history with multi-field filtering
- Mission history export: Filterable mission history with one-click CSV download for reporting and analysis
- Command dispatch: Developer-role operators can issue real-time commands (start, stop, abort, velocity control) to individual robots or the entire fleet
- Alert system: Review, mark read, and clear alerts with severity levels and type-based filtering
- Role-based access control: Developer and guest roles enforced at both the UI and API layers
- Robot detail view: Per-robot drilldown with live pose, battery trends, mission context, and recent status
- Dark mode: User-selectable theme persisted across sessions
- Configurable unit preferences: Per-user unit settings (metric vs imperial) stored alongside user profiles
Stack