Add tabbed dashboard at /dashboard/ with three D3.js visualizations: - Vendor treemap (devices grouped by type and vendor) - SSID social graph (force-directed, shared probed SSIDs as edges) - Fingerprint clusters (packed circles by device behavior) Intelligence API endpoints at /api/v1/intelligence/ with param validation. Dashboard built on htmx + Pico CSS dark theme + D3 v7, all vendored locally (make vendor). 13 new tests (59 total).
2.6 KiB
2.6 KiB
ESP32-Web Tasks
Last Updated: 2026-02-06
Current Sprint: v0.1.5 — Zones & Presence
P1 - High
- Zone model (name, description, location)
POST /api/v1/zones— create zoneGET /api/v1/zones— list zonesPUT /api/v1/zones/<id>— update zone- Assign sensors to zones
P2 - Normal
- Device zone tracking (which zone a device is in)
- Dwell time analysis
- Presence history endpoint
P2 - Dashboard (v0.2.0)
- Presence timeline (Gantt chart, low effort)
- Deauth attack timeline (alert overlay, low effort)
Completed: v0.1.4 — Device Intelligence Dashboard
- Base dashboard layout (htmx + Pico CSS + D3.js dark theme)
- Vendor treemap visualization (
/api/v1/intelligence/vendor-treemap) - SSID social graph visualization (
/api/v1/intelligence/ssid-graph) - Fingerprint clusters visualization (
/api/v1/intelligence/fingerprint-clusters) - Jinja2 base template with tab navigation
- Vendored static assets: Pico CSS, htmx, D3.js v7 (
make vendor) - Dashboard + intelligence API tests (13 new tests, 59 total)
- Pagination totals, request logging, data retention CLI
Completed: v0.1.3 — Fleet Management
GET /api/v1/sensors/<id>/config— read sensor configPUT /api/v1/sensors/<id>/config— update sensor configPOST /api/v1/sensors/<id>/ota— trigger OTA updatePOST /api/v1/sensors/<id>/calibrate— trigger calibration- Sensor heartbeat timeout detection
- Sensor metrics history endpoint
- OpenAPI 3.0 spec with Swagger UI
Completed: v0.1.2 — OSINT Features
- IEEE OUI database download (
make oui) - MAC vendor lookup utility
- BLE company_id mapping (30+ vendors)
- Device profile enrichment in API
- Export endpoints (devices.csv, devices.json, alerts.csv, probes.csv)
- Auto-populate vendor on device creation
Completed: v0.1.1 — Server Management
- Makefile start/stop/restart/status commands
- Health endpoint with uptime tracking
- CLI module (esp32-web command)
- Initial database migration
- Listen on all interfaces (0.0.0.0:5500)
Completed: v0.1.0 — Project Scaffold
- Flask app factory pattern
- SQLAlchemy 2.x models
- API blueprint with endpoints
- UDP collector with parsers
- pytest fixtures and tests
- Containerfile for podman
- Makefile for common tasks
Notes
- Sensors send data to UDP 5500
- API listens on TCP 5500
- Commands sent to sensors on UDP 5501
- SQLite for dev, PostgreSQL for prod
- Dashboard at
/dashboard/with htmx tab switching