How omargomah/automated-exam-supervision-system works
The repository is an early-stage IoT exam-supervision system. Its implemented workflow samples sound, RF energy, and nearby BLE devices on an ESP32, packages the readings, and posts them to a configured endpoint; a separate ESP32-CAM firmware serves camera controls and image streams. The backend currently exposes a weather-forecast example, not telemetry ingestion. README-listed AI/OpenCV and Flutter components have placeholder directories only. The graph reflects sampled firmware and backend behavior; unsampled sensor and camera details are represented only where the tree or README supports them.
Main entry points: main.cpp Telemetry loop · app_httpd.cpp Camera HTTP server · telemetry_publisher.cpp Telemetry publisher · Program.cs Weather API scaffold
Components 14
Telemetry node
- Telemetry loop
src/firmware/ESP32_Telemetry/src/main.cpp - Audio sensing
src/firmware/ESP32_Telemetry/src/audio_telemetry.cpp - RF and BLE
src/firmware/ESP32_Telemetry/src/rf_ble_sniffer.cpp - Wi-Fi manager
src/firmware/ESP32_Telemetry/src/wifi_manager.cpp - Telemetry publisher
src/firmware/ESP32_Telemetry/src/telemetry_publisher.cpp
Camera stream
- Camera HTTP server
src/firmware/ESP_CAM_Stream/CameraWebServer/app_httpd.cpp - Camera web interface
src/firmware/ESP_CAM_Stream/CameraWebServer/camera_index.h
Backend API
- Weather API scaffold
src/backend/SessionManagement.API/Program.cs
Other components
- Exam environment
- Configured ingest endpoint
- Camera hardware
- Camera viewer
- AI/OpenCV component
src/ai-engine - Flutter app component
src/mobile-app
Connections 9
- Telemetry loop → Wi-Fi manager: maintains connection
- Telemetry loop → Audio sensing: reads audio
- Telemetry loop → RF and BLE: reads RF/BLE
- Telemetry loop → Telemetry publisher: publishes readings
- Telemetry publisher → Configured ingest endpoint: posts JSON
- Camera viewer → Camera HTTP server: requests stream/control
- Camera HTTP server → Camera hardware: captures frames
- Camera HTTP server → Camera web interface: serves interface
- Weather API scaffold → Camera viewer: serves forecast route