Production-ready IoT Telemetry & Monitoring Backend
A scalable, high-throughput backend system for collecting, processing, and aggregating real-time telemetry from solar panels and battery inverters.
Explore the Live Demo • Frontend Repository
SolarTrack is built to solve the challenge of ingesting continuous hardware sensor data without dropping packets or overloading the database. It provides a robust API for the frontend dashboards and a background ingestion pipeline for hardware communication.
The project strictly follows Clean Architecture principles to separate domain logic from infrastructure concerns:
SolarPanel.API— Presentation layer exposing REST endpoints for the web client.SolarPanel.Application— Business logic, Use Cases, and CQRS handlers.SolarPanel.Core— Enterprise domain entities, Value Objects, and repository interfaces.SolarPanel.Infrastructure— Data persistence (EF Core), MQTT Broker integration, and external services.
flowchart LR
classDef hardware fill:#0f172a,stroke:#6366f1,stroke-width:2px,color:#f4f4f5;
classDef api fill:#064e3b,stroke:#10b981,stroke-width:2px,color:#f4f4f5;
classDef db fill:#312e81,stroke:#818cf8,stroke-width:2px,color:#f4f4f5;
classDef ui fill:#7f1d1d,stroke:#f87171,stroke-width:2px,color:#f4f4f5;
HW["Inverters & Panels<br/>(IoT Sensors)"]:::hardware -- MQTT --> BROKER["MQTT Broker"]:::hardware
BROKER -- Subscribe --> WORKER["SolarTrack Background<br/>Ingestion Service"]:::api
WORKER -- Persist & Aggregate --> DB[(PostgreSQL)]:::db
DB -. Query .-> API["SolarTrack REST API"]:::api
API -- In-Memory Cache --> API
API -- JSON --> UI["React Dashboard<br/>(SolarTrackUI)"]:::ui
- High-Throughput MQTT Pipeline: Asynchronously consumes hardware telemetry without blocking the main HTTP threads.
- In-Memory Caching Strategy: Aggregated metrics (daily production, efficiency) are cached in-memory to ensure millisecond-level response times for the frontend dashboard.
- Historical Data Aggregation: Automatically groups raw time-series data into readable formats (hourly, daily, monthly) for chart rendering.
- Maintenance & Alerts Logic: Backend evaluation of threshold breaches (e.g., over-voltage, temperature spikes) to trigger system alerts.
This backend powers the SolarTrack UI. You can find the React + TypeScript frontend code here:
👉 github.com/sdwck/SolarTrackUI






