Files
esp32-web/PROJECT.md
user e6e7b622b2 docs: Add project documentation
- 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
2026-02-05 21:06:05 +01:00

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