← Projects

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

Python FastAPI WebSocket HTML CSS JavaScript Google Maps API