# 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/` — 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 - [x] Base dashboard layout (htmx + Pico CSS + D3.js dark theme) - [x] Vendor treemap visualization (`/api/v1/intelligence/vendor-treemap`) - [x] SSID social graph visualization (`/api/v1/intelligence/ssid-graph`) - [x] Fingerprint clusters visualization (`/api/v1/intelligence/fingerprint-clusters`) - [x] Jinja2 base template with tab navigation - [x] Vendored static assets: Pico CSS, htmx, D3.js v7 (`make vendor`) - [x] Dashboard + intelligence API tests (13 new tests, 59 total) - [x] Pagination totals, request logging, data retention CLI ## Completed: v0.1.3 — Fleet Management - [x] `GET /api/v1/sensors//config` — read sensor config - [x] `PUT /api/v1/sensors//config` — update sensor config - [x] `POST /api/v1/sensors//ota` — trigger OTA update - [x] `POST /api/v1/sensors//calibrate` — trigger calibration - [x] Sensor heartbeat timeout detection - [x] Sensor metrics history endpoint - [x] OpenAPI 3.0 spec with Swagger UI ## Completed: v0.1.2 — OSINT Features - [x] IEEE OUI database download (`make oui`) - [x] MAC vendor lookup utility - [x] BLE company_id mapping (30+ vendors) - [x] Device profile enrichment in API - [x] Export endpoints (devices.csv, devices.json, alerts.csv, probes.csv) - [x] Auto-populate vendor on device creation ## Completed: v0.1.1 — Server Management - [x] Makefile start/stop/restart/status commands - [x] Health endpoint with uptime tracking - [x] CLI module (esp32-web command) - [x] Initial database migration - [x] Listen on all interfaces (0.0.0.0:5500) ## Completed: v0.1.0 — Project Scaffold - [x] Flask app factory pattern - [x] SQLAlchemy 2.x models - [x] API blueprint with endpoints - [x] UDP collector with parsers - [x] pytest fixtures and tests - [x] Containerfile for podman - [x] 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