How jherald-vibar/sibol-web works
SIBOL is an IoT gardening platform: growers manage gardens and crops in a React dashboard, while ESP32 readings enter the Laravel backend, are stored and evaluated against crop profiles, and feed live updates, alerts, and reports. Separate branches support irrigation control and image-based crop-health detection through a Flask/YOLO service. The README documents the service-level flow; sampled code confirms selected backend persistence, event, and notification behavior. Several UI and backend subsystems are represented from documented capabilities and the file tree, not inspected implementation details.
Main entry points: IotController.php IoT ingestion · api.php API routes · GardenController.php Garden management · Garden.php Gardens and crops
Components 28
Web experience
- User and admin UI
sibol-frontend/src/Views - App routing
sibol-frontend/src/Router.jsx - Live sensor hook
sibol-frontend/src/hooks/useSensorData.js
Laravel application
- API routes
routes/api.php - Accounts and auth
app/Http/Controllers/Accounts/UserController.php - Reports
app/Http/Controllers/IotController.php - Notification API
app/Http/Controllers/NotificationController.php - Notification event
app/Events/NotificationCreated.php - Alert records
app/Models/Notification.php
Garden domain
- Garden management
app/Http/Controllers/GardenController.php - User accounts
app/Models/User.php - Gardens and crops
app/Models/Garden.php - Crop profiles
app/Models/CropProfile.php
Monitoring and care
- IoT ingestion
app/Http/Controllers/IotController.php - Irrigation control
app/Http/Controllers/IrrigationController.php - Detection results
app/Http/Controllers/DetectionResultController.php - Alert evaluation
app/Services/NotificationService.php - Sensor event
app/Events/SensorDataReceived.php - ESP devices
app/Models/Esp.php - Sensor readings
app/Models/SensorData.php - Detection records
app/Models/DetectionResults.php
External services
- YOLO detection service
python-yolo/app.py - MQTT broker
- WebSocket service
- SMS and email
app/Services - Cloudinary media
Other components
- Grower
- ESP32 nodes
Connections 35
- Grower → App routing: opens
sibol-frontend/src/Router.jsx - App routing → User and admin UI: routes to
sibol-frontend/src/Router.jsx - User and admin UI → API routes: requests data
- API routes → Accounts and auth: routes to
routes/api.php - API routes → Garden management: routes to
routes/api.php - API routes → IoT ingestion: routes to
routes/api.php - API routes → Irrigation control: routes to
routes/api.php - API routes → Detection results: routes to
routes/api.php - API routes → Notification API: routes to
routes/api.php - Accounts and auth → User accounts: manages
app/Http/Controllers/Accounts/UserController.php - Garden management → Gardens and crops: manages
app/Http/Controllers/GardenController.php - Garden management → Crop profiles: reads profiles
app/Http/Controllers/GardenController.php - ESP32 nodes → MQTT broker: publishes readings
README.md - MQTT broker → IoT ingestion: ingests readings
README.md - IoT ingestion → Sensor readings: stores readings
app/Http/Controllers/IotController.php - IoT ingestion → ESP devices: resolves device
app/Http/Controllers/IotController.php - IoT ingestion → YOLO detection service: submits images
README.md - IoT ingestion → Cloudinary media: uploads images
app/Http/Controllers/IotController.php - IoT ingestion → Sensor event: broadcasts
app/Http/Controllers/IotController.php - IoT ingestion → Alert evaluation: checks conditions
app/Http/Controllers/IotController.php - Alert evaluation → Alert records: creates alerts
app/Services/NotificationService.php - Alert evaluation → Notification event: broadcasts
app/Services/NotificationService.php - Sensor event → SMS and email: sends alerts
app/Events/SensorDataReceived.php - Notification event → Alert records: includes alert
app/Events/NotificationCreated.php - Notification API → Alert records: reads alerts
routes/api.php - Sensor event → WebSocket service: broadcasts live
README.md - WebSocket service → Live sensor hook: streams updates
README.md - Live sensor hook → User and admin UI: updates charts
sibol-frontend/src/hooks/useSensorData.js - Irrigation control → ESP devices: controls device
app/Http/Controllers/IrrigationController.php - Detection results → Detection records: reads results
app/Http/Controllers/DetectionResultController.php - Detection records → WebSocket service: broadcasts updates
app/Models/DetectionResults.php - Reports → Sensor readings: queries readings
app/Http/Controllers/IotController.php - Reports → Grower: downloads reports
README.md - Gardens and crops → User accounts: belongs to
app/Models/User.php - Gardens and crops → Crop profiles: has crop care