A Python-powered GPS tracking dashboard that transforms CSV fleet data into an interactive, real-time visualization. Monitor 30+ devices across Australia with status indicators, battery levels, and geographic mapping.
Comprehensive fleet management capabilities built with Python and modern web technologies
Real-time geographic visualization using Leaflet.js with color-coded markers for each device status. Hover tooltips and click popups for detailed information.
Instant overview of fleet health with summary cards showing Active, Idle, Offline, and Low Battery counts. Visual battery level indicators with color-coded bars.
Track device battery levels with visual progress bars. Color-coded system (green/yellow/red) for quick identification of devices needing attention.
GPS coordinates mapped to Australian cities. See device distribution across Sydney, Melbourne, Brisbane, Perth, Adelaide, and 15+ other locations.
Human-readable "time ago" format (e.g., "5 min ago", "2 days ago") with full timestamp on hover. Quickly identify stale or offline devices.
Built-in data injection for stress testing. Add edge cases like negative battery, null coordinates, duplicates, and off-map positions with CLI flags.
Zero external dependencies - built entirely with Python standard library and modern web APIs
Simple three-step process from raw data to interactive dashboard
Python script parses fleet_status.csv containing device IDs, names, status, battery levels, GPS coordinates, timestamps, and location names.
Data is cleaned, types converted (ints, floats, datetimes), time-ago calculations performed, and status summary aggregated. JSON data prepared for frontend.
Self-contained HTML file created with embedded CSS, JavaScript, and device data. Leaflet.js renders interactive map with color-coded markers and popups.
CSV format with comprehensive device tracking information
| Column | Type | Description | Example |
|---|---|---|---|
device_id |
String | Unique device identifier | GPS-001 |
name |
String | Human-readable device name | Fleet Alpha |
status |
Enum | active, idle, offline, or low_battery | active |
battery_pct |
Integer | Battery level (0-100) | 95 |
lat |
Float | Latitude coordinate | -33.780734 |
lon |
Float | Longitude coordinate | 151.51943 |
last_seen |
DateTime | Timestamp (YYYY-MM-DD HH:MM:SS) | 2026-05-27 07:30:00 |
location |
String | City or area name | Sydney |
View the live dashboard or check out the source code to see how it all works