- README.md: Quick start, API endpoints, ports - PROJECT.md: Architecture, components, data models - ROADMAP.md: Version milestones (v0.1.x - v1.0.0) - TASKS.md: Current sprint tasks - TODO.md: Backlog items - docs/INSTALL.md: Setup and deployment - docs/USAGE.md: API examples - docs/CHEATSHEET.md: Quick reference
1.7 KiB
1.7 KiB
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 - ESP32 firmware
- esp-tools - CLI tools (esp-ctl, esp-fleet)