Skip to content

About

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

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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 Demo β€’ Frontend 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

0 stars

Watchers

0 watching

Forks

Contributors

Languages