Files
esp32-web/TASKS.md
user dfbd2a2196 feat: v0.1.4 — device intelligence dashboard
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).
2026-02-06 18:59:53 +01:00

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 zone
  • GET /api/v1/zones — list zones
  • PUT /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 config
  • PUT /api/v1/sensors/<id>/config — update sensor config
  • POST /api/v1/sensors/<id>/ota — trigger OTA update
  • POST /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