# ESP32-Web Project ## Overview REST API backend for ESP32 CSI sensor fleet. Collects and stores sensor data (BLE, WiFi probes, alerts, events) for OPSEC/OSINT/Purple team operations. ## Goals - Aggregate data from multiple ESP32 sensors - Provide REST API for querying devices, alerts, events - Track device presence and movement across zones - Enable fleet management (commands, OTA, calibration) ## Architecture ``` ESP32 Sensors (UDP 5500) ──▶ UDP Collector ──▶ SQLite/PostgreSQL │ ▼ Flask REST API (TCP 5500) │ ▼ Clients / Dashboards ``` ## Components | Component | Path | Description | |-----------|------|-------------| | App Factory | `src/esp32_web/__init__.py` | Flask application factory | | Config | `src/esp32_web/config.py` | Configuration classes | | Models | `src/esp32_web/models/` | SQLAlchemy ORM models | | API | `src/esp32_web/api/` | REST API blueprints | | Collector | `src/esp32_web/collector/` | UDP listener + parsers | ## Data Models | Model | Description | |-------|-------------| | Sensor | ESP32 sensor node (hostname, IP, status) | | Device | Discovered BLE/WiFi device (MAC, vendor, name) | | Sighting | Device seen by sensor (RSSI, timestamp) | | Alert | Security alert (deauth, flood) | | Event | Sensor event (motion, presence, calibration) | | Probe | WiFi probe request (SSID, channel) | ## Dependencies - Flask 3.x - SQLAlchemy 2.x - Flask-Migrate - Flask-CORS - gunicorn ## Related Projects - [esp32-hacking](~/git/esp32-hacking/) - ESP32 firmware - [esp-tools](~/git/esp-tools/) - CLI tools (esp-ctl, esp-fleet)