EnergyFlow Dashboard ist eine serviceorientierte Full-Stack-Webanwendung zur Erfassung, Verwaltung, Analyse und Visualisierung von Energieverbrauchsdaten.
Das Projekt zeigt den Aufbau einer modernen Webanwendung mit Vue-Frontend, Spring-Boot-Backend, REST-API und PostgreSQL-Datenbank. Der fachliche Fokus liegt auf Energiemanagement, Standortverwaltung, Energiezählern, Messwerten, Grenzwerten und einfachen Dashboard-Auswertungen.
- Projektziel
- Aktueller Status
- Screenshots
- Features
- Tech-Stack
- Architektur
- Lokaler Start
- API-Beispiele
- Tests
- Dokumentation
- Roadmap
- Autor
- License
Ziel des Projekts ist eine Webanwendung, mit der Energieverbrauchsdaten verschiedener Standorte und Energiezähler verwaltet, ausgewertet und visualisiert werden können.
Die Anwendung soll zeigen, wie Frontend, Backend und Datenbank in einer serviceorientierten Architektur zusammenspielen. Zusätzlich werden fachliche Logiken wie Grenzwertprüfung, Warnstatus und Dashboard-Kennzahlen umgesetzt.
Das Projekt befindet sich in Entwicklung.
- Vue-Frontend initialisiert
- Spring-Boot-Backend initialisiert
- Frontend, Backend und PostgreSQL über Docker Compose startbar
- Backend mit PostgreSQL verbunden
- Erste REST-API für Standorte umgesetzt
- Site CRUD API getestet
GET /api/sites
GET /api/sites/{id}
POST /api/sites
PUT /api/sites/{id}
DELETE /api/sites/{id}
- Energiezähler-API
- Messwerte-API
- Grenzwertlogik
- Dashboard-Endpunkte
- Frontend-Anbindung an die REST-API
- Backend-Tests
Die Site-Management-Ansicht zeigt das Vue-Frontend mit angebundener Spring-Boot-REST-API. Standorte können erstellt, angezeigt, bearbeitet und gelöscht werden.
- Standorte anzeigen
- Standort nach ID abrufen
- Standort anlegen
- Standort bearbeiten
- Standort löschen
- Energiezähler verwalten
- Messwerte erfassen und filtern
- Grenzwerte definieren
- Warnstatus automatisch setzen
- Dashboard-Kennzahlen berechnen
- Verbrauchsdaten visualisieren
- Vue 3
- TypeScript
- Vue Router
- Axios
- Chart.js
- Java 21
- Spring Boot
- Spring Web
- Spring Data JPA
- Hibernate
- Maven
- Bean Validation
- REST-API
- DTOs
- PostgreSQL 16
- Git
- Docker
- Docker Compose
- Postman
- PowerShell
- VS Code
- JUnit
- Mockito
- Spring Boot Test
Frontend: Vue + TypeScript
|
v
REST-API
|
v
Backend: Java Spring Boot
|
|--- Controller Layer
|--- Service Layer
|--- Repository Layer
|--- Entity Layer
|--- DTO Layer
|--- Validation Layer
|--- Exception Handling
|
v
Database: PostgreSQL
Details zur Architektur stehen in:
docs/architecture.md
- Git
- Docker
- Docker Compose
Java 21, Node.js und npm werden nur für die manuelle Entwicklung ohne vollständigen Docker-Stack benötigt.
git clone https://github.com/USERNAME/EnergyFlow-Dashboard.git
cd EnergyFlow-DashboardCopy-Item .env.example .envVor dem ersten Start muss in .env ein eigenes POSTGRES_PASSWORD gesetzt werden.
Hinweis: Die
POSTGRES_*-Werte werden nur beim erstmaligen Anlegen des Datenbankvolumes übernommen. Bei einem bestehenden Volume muss ein geändertes Passwort in PostgreSQL migriert oder wieder an den vorhandenen Wert angepasst werden.
docker compose up --build -d --wait --wait-timeout 120Der Befehl baut und startet Frontend, Backend und PostgreSQL. Anschließend sind folgende Adressen verfügbar:
| Dienst | Adresse |
|---|---|
| Anwendung | http://localhost |
| API über das Frontend | http://localhost/api/sites |
| Backend direkt | http://localhost:8080 |
Status prüfen:
docker compose psErwartete Container:
energyflow-postgres
energyflow-backend
energyflow-frontend
Container stoppen, Daten behalten:
docker compose downContainer und Datenbankvolume löschen:
docker compose down -vAchtung:
docker compose down -vlöscht alle lokal gespeicherten Datenbankdaten.
Detaillierte Setup-Anleitung:
docs/setup.md
Invoke-RestMethod -Uri "http://localhost/api/sites"$body = @{
name = "Verwaltungsgebäude Ilmenau"
type = "OFFICE"
location = "Ilmenau"
} | ConvertTo-Json
Invoke-RestMethod `
-Method POST `
-Uri "http://localhost/api/sites" `
-ContentType "application/json" `
-Body $bodyInvoke-RestMethod -Uri "http://localhost/api/sites/1"Weitere API-Dokumentation:
docs/api.md
Push-Location backend
.\mvnw.cmd test
Pop-LocationDie Backend-Tests laufen gegen ein H2-Testprofil und benötigen keinen laufenden PostgreSQL-Container.
Push-Location frontend
npm run lint
npm run build
Pop-LocationWeitere Projektdokumentation:
docs/
|
|--- architecture.md // Architektur, Backend- und Frontend-Struktur
|--- api.md // REST-Endpunkte und API-Testbeispiele
|--- database.md // Datenbankmodell und Beziehungen
|--- setup.md // lokale Installation und Startanleitung
|--- screenshots/ // geplante Screenshots
- Site CRUD API
- Meter CRUD API
- Measurement CRUD API
- PostgreSQL-Datenbankmodell
- einfache Grenzwertlogik
- Dashboard-Kennzahlen
- Frontend-Ansichten für Standorte und Messwerte
- Backend-Unit-Tests
- Pagination und Sortierung
- Swagger/OpenAPI-Dokumentation
- globale Fehlerbehandlung
- Datenbankmigrationen mit Flyway oder Liquibase
- CSV-Upload für Messwerte
- CSV-Export
- PDF-Export für Dashboard-Berichte
- Benachrichtigungen bei kritischen Messwerten
- optionaler Go-Service für Import- oder Hintergrundverarbeitung
Mohammad Taiba
Copyright (c) 2026 Mohammad Taiba. All rights reserved.
Der Quellcode ist öffentlich einsehbar. Die Nutzungsbedingungen stehen in LICENSE.
