How juliabonetto/ecoscamserver2 works
EcoS-cam is a FastAPI backend for a camera-equipped waste-sorting device. Its main workflow accepts a device image, classifies the waste, and supports device commands and manual selection; other documented endpoints manage device activation and bin-fill alerts. The excerpts show database access and model loading, but omit parts of the current server implementation, so uncertain internal calls are not drawn.
Main entry points: server.py Transient device state · keras_model.h5 Classifier model · labels.txt Class labels
Components 17
Waste classification
- Classify image
server.py - Classifier model
keras_model.h5 - Class labels
labels.txt
Device management
- EcoS-cam API
server.py - Register device
server.py - Enable device
server.py - Disable device
server.py - Device status
server.py
Sorting and alerts
- Manual selection
server.py - Bin control
server.py - Device commands
server.py - Fill alerts
server.py - Clear fill alert
server.py
State and storage
- Transient device state
server.py - MySQL database
Other components
- ESP32 device
- Device operator
Connections 26
- ESP32 device → Classify image: sends image
- Classify image → Classifier model: loads model
- Classify image → Class labels: uses labels
- Classify image → MySQL database: checks device
- Device operator → Register device: registers
- Register device → MySQL database: creates device
- Device operator → Enable device: enables
- Enable device → MySQL database: updates device
- Device operator → Disable device: disables
- Disable device → MySQL database: updates device
- ESP32 device → Device status: requests status
- Device status → MySQL database: reads device
- Device operator → Manual selection: selects category
- Manual selection → Transient device state: reads classification
- Manual selection → Transient device state: updates state
- ESP32 device → Device commands: polls commands
- Device commands → MySQL database: checks device
- Device commands → Transient device state: reads commands
- ESP32 device → Bin control: sends control
- Bin control → Transient device state: updates state
- ESP32 device → Fill alerts: reports fill
- Fill alerts → MySQL database: checks device
- Fill alerts → Transient device state: updates alert
- Device operator → Clear fill alert: clears alert
- Clear fill alert → MySQL database: checks device
- Clear fill alert → Transient device state: clears alert