How khadeer0503/home-energy-tracker works
Home Energy Tracker is a microservices system for household electricity monitoring. Smart-device readings enter through the ingestion API, are published to Kafka, and are processed for usage history and alerts; residents can also manage users and devices and query aggregated usage. The graph shows the documented relational and time-series storage roles, but the sampled excerpts do not establish the implementations’ exact persistence calls or the alert-event producer wiring. The README also describes gateway, security, and observability capabilities, but no corresponding source paths appear in this tree.
Main entry points: EnergyUsageServiceIMPL.java Usage processor · IngestionServiceImpl.java Ingestion service · AlertService.java Alert listener · EmailService.java Email service
Components 24
Reading ingestion
- Ingestion API
Services/IOT-Ingestion-Service/src/main/java/com/Home_Energy_Tracker/IOT_Ingestion_Service/controller/IngestionController.java - Ingestion service
Services/IOT-Ingestion-Service/src/main/java/com/Home_Energy_Tracker/IOT_Ingestion_Service/service/INGESTION_IMPL/IngestionServiceImpl.java - Usage event
Services/IOT-Ingestion-Service/src/main/java/com/Home_Energy_Tracker/kafka/event/EnergyUsageEvent.java
Usage analytics
- Usage processor
Services/Energy-Usage-Service/src/main/java/com/Home_Energy_Tracker/Energy_Usage_Service/service/ENERGYUSAGE_IMPL/EnergyUsageServiceIMPL.java - Usage API
Services/Energy-Usage-Service/src/main/java/com/Home_Energy_Tracker/Energy_Usage_Service/controller/EnergyUsageController.java - Device client
Services/Energy-Usage-Service/src/main/java/com/Home_Energy_Tracker/Energy_Usage_Service/client/DeviceClient.java - User client
Services/Energy-Usage-Service/src/main/java/com/Home_Energy_Tracker/Energy_Usage_Service/client/UserClient.java
Account and devices
- Device API
Services/Device-Service/src/main/java/com/Home_Energy_Tracker/Device_Service/controller/DeviceController.java - Device service
Services/Device-Service/src/main/java/com/Home_Energy_Tracker/Device_Service/service/DEVICE_IMPL/DeviceServiceImpl.java - Device repository
Services/Device-Service/src/main/java/com/Home_Energy_Tracker/Device_Service/repository/DeviceRepository.java - User API
Services/User-Service/src/main/java/com/Home_Energy_Tracker/User_Service/controller/UserController.java - User service
Services/User-Service/src/main/java/com/Home_Energy_Tracker/User_Service/service/USER_IMPL/UserServiceImpl.java - User repository
Services/User-Service/src/main/java/com/Home_Energy_Tracker/User_Service/repository/UserRepository.java
Alert delivery
- Alert event
Services/Alert-Service/src/main/java/Kafka/event/AlertingEvent.java - Alert listener
Services/Alert-Service/src/main/java/com/Home_Energy_Tracker/Alert_Service/service/AlertService.java - Email service
Services/Alert-Service/src/main/java/com/Home_Energy_Tracker/Alert_Service/service/EmailService.java - Alert repository
Services/Alert-Service/src/main/java/com/Home_Energy_Tracker/Alert_Service/repository/AlertRepository.java
Messaging and storage
- Usage topic
- Time-series store
Services/Energy-Usage-Service/src/main/java/com/Home_Energy_Tracker/Energy_Usage_Service/config/InfluxDBConfig.java - Alerts topic
- Relational store
Other components
- Smart device
- Resident
- Mail provider
Connections 24
- Smart device → Ingestion API: submits reading
- Ingestion API → Ingestion service: calls
- Ingestion service → Usage event: builds event
- Ingestion service → Usage topic: publishes
- Usage topic → Usage processor: delivers readings
- Resident → Usage API: requests history
- Usage API → Usage processor: calls
- Usage processor → Time-series store: queries and stores
- Usage processor → Device client: looks up devices
- Usage processor → User client: looks up users
- Resident → Device API: manages devices
- Device API → Device service: calls
- Device service → Device repository: reads and writes
- Device repository → Relational store: persists
- Resident → User API: manages account
- User API → User service: calls
- User service → User repository: reads and writes
- User repository → Relational store: persists
- Alerts topic → Alert listener: delivers alerts
- Alert listener → Alert event: receives event
- Alert listener → Email service: calls
- Email service → Mail provider: sends email
- Email service → Alert repository: records delivery
- Alert repository → Relational store: persists