Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☀️ SolarTrack Core API

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 DemoFrontend Repository

.NET C# MQTT Clean Architecture


📖 Overview

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.

🏗 Architecture

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
Loading

⚡ Key Features

  • 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.

💻 Related Repositories

This backend powers the SolarTrack UI. You can find the React + TypeScript frontend code here:
👉 github.com/sdwck/SolarTrackUI


📸 System Previews

Click to expand Dashboard Screenshots
Main Dashboard Power Flow Visualization
System Health & Diagnostics Battery Analytics
Analytics & Comparisons Energy History
Maintenance Management

About

SolarTrack is a platform for collecting, processing, and storing solar panel telemetry, featuring a clean architecture and MQTT-based data ingestion.

Resources

Stars

Watchers

Forks

Contributors

Languages