How muhammadraihanpramanawiguna/landia-smart-farming works
This repository is a set of Spring services for agricultural sensor telemetry and irrigation control. Sensor readings can be submitted through HTTP or received through MQTT, then saved and queried by sensor; the irrigation API publishes device commands and records execution events. The graph retains the six separate telemetry domains and the command path. The README is empty and listener, repository, and configuration implementations were not sampled, so their wiring is represented only where module names and the sampled service code support it.
Main entry points: IrrigationEventService.java Irrigation events · DhtReadingService.java DHT readings · FlowReadingService.java Flow readings · RainReadingService.java Rain readings
Components 27
Sensor telemetry
- DHT readings
dht-service/src/main/java/com/landiafarm/dhtservice/service/DhtReadingService.java - DHT repository
dht-service/src/main/java/com/landiafarm/dhtservice/repository/DhtReadingRepository.java - DHT listener
dht-service/src/main/java/com/landiafarm/dhtservice/mqtt/MqttDhtMessageListener.java - Flow readings
flow-service/src/main/java/com/landiafarm/flowservice/service/FlowReadingService.java - Flow repository
flow-service/src/main/java/com/landiafarm/flowservice/repository/FlowReadingRepository.java - Flow listener
flow-service/src/main/java/com/landiafarm/flowservice/mqtt/MqttFlowMessageListener.java - Rain readings
rain-service/src/main/java/com/landiafarm/rainservice/service/RainReadingService.java - Rain repository
rain-service/src/main/java/com/landiafarm/rainservice/repository/RainReadingRepository.java - Rain listener
rain-service/src/main/java/com/landiafarm/rainservice/mqtt/MqttRainMessageListener.java - Soil readings
soil-service/src/main/java/com/landiafarm/soilservice/service/SoilReadingService.java - Soil repository
soil-service/src/main/java/com/landiafarm/soilservice/repository/SoilReadingRepository.java - Soil listener
soil-service/src/main/java/com/landiafarm/soilservice/mqtt/MqttSoilMessageListener.java - Water level readings
water-level-service/src/main/java/com/landiafarm/waterlevelservice/service/WaterLevelReadingService.java - Water level repository
water-level-service/src/main/java/com/landiafarm/waterlevelservice/repository/WaterLevelReadingRepository.java - Water level listener
water-level-service/src/main/java/com/landiafarm/waterlevelservice/mqtt/MqttWaterLevelMessageListener.java
HTTP APIs
- DHT API
dht-service/src/main/java/com/landiafarm/dhtservice/controller/DhtReadingController.java - Flow API
flow-service/src/main/java/com/landiafarm/flowservice/controller/FlowReadingController.java - Rain API
rain-service/src/main/java/com/landiafarm/rainservice/controller/RainReadingController.java - Soil API
soil-service/src/main/java/com/landiafarm/soilservice/controller/SoilReadingController.java - Water level API
water-level-service/src/main/java/com/landiafarm/waterlevelservice/controller/WaterLevelReadingController.java
Irrigation control
- Irrigation API
irrigation-service/src/main/java/com/landiafarm/irrigationservice/controller/IrrigationEventController.java - Irrigation events
irrigation-service/src/main/java/com/landiafarm/irrigationservice/service/IrrigationEventService.java - Event repository
irrigation-service/src/main/java/com/landiafarm/irrigationservice/repository/IrrigationEventRepository.java - Command publisher
irrigation-service/src/main/java/com/landiafarm/irrigationservice/mqtt/MqttIrrigationCommandPublisher.java
Other components
- API client
- MQTT broker
- Persistence store
Connections 36
- API client → DHT API: requests
- API client → Flow API: requests
- API client → Rain API: requests
- API client → Soil API: requests
- API client → Water level API: requests
- API client → Irrigation API: requests
- DHT API → DHT readings: calls
- Flow API → Flow readings: calls
- Rain API → Rain readings: calls
- Soil API → Soil readings: calls
- Water level API → Water level readings: calls
- Irrigation API → Irrigation events: calls
- DHT readings → DHT repository: reads/writes
- Flow readings → Flow repository: reads/writes
- Rain readings → Rain repository: reads/writes
- Soil readings → Soil repository: reads/writes
- Water level readings → Water level repository: reads/writes
- Irrigation events → Event repository: reads/writes
- DHT repository → Persistence store: persists
- Flow repository → Persistence store: persists
- Rain repository → Persistence store: persists
- Soil repository → Persistence store: persists
- Water level repository → Persistence store: persists
- Event repository → Persistence store: persists
- MQTT broker → DHT listener: delivers
- MQTT broker → Flow listener: delivers
- MQTT broker → Rain listener: delivers
- MQTT broker → Soil listener: delivers
- MQTT broker → Water level listener: delivers
- DHT listener → DHT readings: submits readings
- Flow listener → Flow readings: submits readings
- Rain listener → Rain readings: submits readings
- Soil listener → Soil readings: submits readings
- Water level listener → Water level readings: submits readings
- Irrigation events → Command publisher: publishes command
- Command publisher → MQTT broker: sends command