Schwarmspeicher Electrify

Version 6.1 by Patrizia Gurschka on 2026/09/09 14:24

🔋  Schwarmspeicher Electrify

ⓘ   Zweck: Webbasiertes Projektmanagementsystem zur Verwaltung von Batterie-Großspeicherprojekten in Deutschland und Österreich — vom Standort über Genehmigungen bis zur Projektsteuerung und Dokumentation. Die aktuelle Anwendung enthält zusätzlich den eigenständigen Use-Case PV Co-Location.

Auf dieser Seite

• 🔋 Schwarmspeicher Electrify

• Übersicht

• Technologie-Stack

• Projektstruktur

• Hauptfunktionen

â–ª Dashboard

â–ª Projektverwaltung

â–ª Standortverwaltung

â–ª Gemeinden

â–ª Kartenansicht

â–ª Potenzialanalyse

â–ª Pipeline

â–ª Meilensteinverwaltung

â–ª Aufgabenverwaltung

â–ª Dokumentenverwaltung

â–ª Standortpartner

â–ª Stockende Projekte

â–ª Forecast

â–ª PV Co-Location

â–ª Benutzerverwaltung

â–ª Audit Log

• Routing

• Datenzugriff

• Supabase

• Architektur

• Server

Übersicht

Schwarmspeicher Electrify unterstützt den gesamten Projektlebenszyklus: Standortidentifikation, Pipeline, Genehmigungen, Projektsteuerung, Forecast, Aufgaben und Dokumentation. Über einen Use-Case-Switcher kann zwischen Schwarmspeicher und PV Co-Location gewechselt werden. Der aktive Use-Case wird aus dem URL-Pfad abgeleitet.

Technologie-Stack

Frontend: React 18.3.1 · TypeScript 5.8.3 · Vite 5.4.19 · Tailwind CSS 3.4.17 · shadcn/ui / Radix UI · React Router DOM 6.30.1 · TanStack React Query 5.83.0 · React Hook Form 7.61.1 · Zod 3.25.76 · Leaflet 1.9.4 / React Leaflet 4.2.1 · Recharts 2.15.4 · xlsx 0.18.5

Backend: Supabase — PostgreSQL, Authentication, Storage, Edge Functions, Row Level Security (RLS)

Tests: Vitest 3.2.4 · Playwright 1.57.0

Projektstruktur

src/
├── components/          UI-Komponenten und Fachkomponenten
├── pages/               Seiten der Anwendung
├── hooks/               Datenzugriffe und Business-Logik
├── integrations/        Supabase Client und generierte Typen
├── types/               TypeScript-Modelle, inkl. PV Co-Location
└── lib/                 Hilfsfunktionen

supabase/
├── migrations/
├── functions/
└── config.toml

Hauptfunktionen

Dashboard

Zentrale Übersicht über Projekte, Status, offene Aufgaben, Kennzahlen und Projektfortschritt. Für PV Co-Location existiert ein eigenes Dashboard mit Kennzahlen zu aktiven Standorten, Modulleistung, BESS-Leistung, Standortpartnern, Pipeline sowie Plan-/Ist-Werten.

Projektverwaltung

Verwaltung aller Batteriespeicherprojekte: anzeigen, Detailansicht, bearbeiten, Projektstatus und Meilensteine. Komponenten: ProjectTable, ProjectDetail. PV Co-Location besitzt eine eigene Projektansicht mit CoLocationProjectTable und CoLocationStandortDetail.

Standortverwaltung

Standorte anlegen, bearbeiten, importieren, Historie und Dokumente. Komponenten: StandortDetail, CreateStandortForm, StandortImportDialog, StandortDokumente. PV Co-Location ergänzt eigene Formulare, Import, Bulk-Edit und Detailansichten.

Gemeinden

Verwaltung der Gemeinden (Komponente CreateGemeindeForm). Zusätzlich existiert eine Supabase Edge Function zum Abruf von NÖ-Gemeinden (supabase/functions/fetch-noe-gemeinden).

Kartenansicht

Darstellung aller Standorte auf einer interaktiven Karte mit Leaflet / React Leaflet. Komponenten: ProjectMap, LocationPickerMap. PV Co-Location besitzt eine eigene Karte mit Standortselektion, Partnerfilter und Übergabe ausgewählter Standort-IDs an die Projektansicht.

Potenzialanalyse

Bewertung möglicher Standorte. Komponenten: PotenzialTabelle, PotenzialPage. Die Potenzialanalyse ist aktuell dem Schwarmspeicher-Use-Case zugeordnet.

Pipeline

Verwaltung von Vorprojekten. Komponenten: VorprojektePipeline, VorprojektTimeline. PV Co-Location besitzt eine separate Pipeline für co_vorprojekte mit Standortpartner, Kontakt, Standort-/kWp-/BESS-Potenzial, Realisierungswahrscheinlichkeit, Follow-up und nächsten Schritten.

Meilensteinverwaltung

Projektfortschritt über Meilensteine. Komponenten: MeilensteinMatrix, MeilensteinQuickEdit. PV Co-Location verwendet eine eigene Meilensteinmatrix und Quick-Edit-Logik. Zu den dort abgebildeten Schritten gehören u. a. Grundstücksvertrag, Netzzugangsvertrag, Fertigstellungsmeldung, BESS-Bezugsleistung und Inbetriebnahme.

Aufgabenverwaltung

Projektbezogene Aufgaben. Komponenten: TaskManager, TasksPage. Hook: useTasks(). PV Co-Location verwendet mit CoTaskManager, CoLocationTasksPage und useCoTasks() eine eigene, vom Schwarmspeicher getrennte Aufgabenliste.

Dokumentenverwaltung

Zu jedem Standort können Dokumente verwaltet werden. Komponenten: StandortDokumente, PartnerDokumente. PV Co-Location besitzt eigene Standort- und Partnerdokumente sowie den separaten Frontend-Zugriff auf den Storage-Bucket co-dokumente; Downloads werden als Signed URLs erzeugt.

Standortpartner

Verwaltung von Projektpartnern. Komponenten: StandortpartnerManager, StandortpartnerTable. Für PV Co-Location existieren separate Komponenten und Datenzugriffe für Standortpartner.

Stockende Projekte

Erkennung von Projekten bzw. Standorten, deren definierte Lead Times zwischen Meilensteinen überschritten sind. Für PV Co-Location sind die Lead-Time-Regeln in der UI anpassbar und werden derzeit im Browser-localStorage gespeichert.

Forecast

Forecast auf Basis von Monatszielen und erreichten Meilensteinen. PV Co-Location enthält Plan-/Ist-Auswertungen für Netzzugangsvertrag, BESS beantragt, BESS bewilligt und BESS in Betrieb sowie eine Jahresauswahl und editierbare Monatsziele.

PV Co-Location

Zweiter fachlich getrennter Use-Case mit eigenen Routen, Seiten, Hooks und Datenobjekten. Enthalten sind Dashboard, Karte, Projekte, Pipeline, stockende Standorte, Forecast und Tasks. Die Use-Case-Umschaltung erfolgt über den Sidebar-Switcher; /pv-colocation/* aktiviert PV Co-Location, die übrigen Anwendungspfade den Schwarmspeicher.

Benutzerverwaltung

Anmeldung, Passwortänderung und Rollen. Komponenten: AuthProvider, ProtectedRoute, BenutzerPage, ChangePasswordDialog. Backend: Supabase Authentication. Die Anwendung unterstützt zudem eine verpflichtende Passwortänderung über useMustChangePassword().

Audit Log

Nachvollziehbarkeit von Änderungen über AuditLogPage und audit_log. Der Zugriff auf das Änderungsprotokoll ist über die vorhandenen Datenbankregeln auf Administratoren eingeschränkt.

Routing

SeiteBeschreibung
DashboardStartseite
ProjekteProjektübersicht
PipelineVorprojekte
PotenzialeStandortpotenziale
KarteKartenansicht
StockendStockende Projekte / Standorte
ForecastForecast
AufgabenAufgabenverwaltung
Audit LogÄnderungsprotokoll
BenutzerBenutzerverwaltung
LoginAnmeldung

Schwarmspeicher-Routen: / · /projekte · /pipeline · /potenzial · /karte · /stockend · /forecast · /tasks · /benutzer · /historie

PV-Co-Location-Routen: /pv-colocation · /pv-colocation/projekte · /pv-colocation/pipeline · /pv-colocation/karte · /pv-colocation/stockend · /pv-colocation/forecast · /pv-colocation/tasks

Datenzugriff

Der Zugriff erfolgt über Custom Hooks, die die Kommunikation mit Supabase kapseln. React Query übernimmt Laden, Mutationen und Cache-Invalidierung.

Schwarmspeicher:
useStandorte()
useGemeinden()
useVorprojekte()
useTasks()
usePotenzialDaten()
useStandortpartner()
useMonatsziele()
useDokumente()

PV Co-Location:
useCoLocationStandorte()
useCoLocationStandortpartner()
useCoVorprojekte()
useCoTasks()
useCoMonatsziele()
useCoDokumente()

Supabase

Authentication: Login, Passwortänderung, Rollenverwaltung und geschützte Routen.

Datenbank: Wird über SQL-Migrationen verwaltet (supabase/migrations/). Die Migrationen definieren Tabellen, Policies und Datenbankfunktionen.

Storage: Der bestehende Bucket dokumente ist laut Migration privat und auf authentifizierte Zugriffe beschränkt. Das PV-Co-Location-Frontend referenziert zusätzlich den Bucket co-dokumente.

Audit: Ã„nderungen werden über audit_log und Datenbank-Trigger protokolliert; die Audit-Funktion ist gegen direkte Ausführung durch PUBLIC/anon/authenticated gehärtet.

Edge Functions:

• fetch-noe-gemeinden — lädt Gemeinden aus Niederösterreich

• manage-users — Benutzerverwaltung

ⓘ  Technischer Hinweis: Die Frontend-Hooks referenzieren mehrere co_* Datenobjekte (u. a. co_standorte, co_prozessschritte, co_standortpartner, co_vorprojekte, co_tasks, co_monatsziele und co_dokumente) sowie den Storage-Bucket co-dokumente. Im bereitgestellten supabase/migrations-Verzeichnis und in den generierten Supabase-Typen sind diese Co-Location-Objekte nicht vollständig enthalten. Für ein reproduzierbares Deployment sollten die fehlenden Schema-, RLS- und Storage-Migrationen ergänzt und die Typen anschließend neu generiert werden.

Architektur

flowchart TD
    FE["React Frontend"] --> UC["UseCaseProvider / Router"]
    UC --> SS["Schwarmspeicher Pages"]
    UC --> CO["PV Co-Location Pages"]
    SS --> RQ["React Query"]
    CO --> RQ
    RQ --> SC["Supabase Client"]
    SC --> AUTH["Auth"]
    SC --> DBS["Database / RLS"]
    SC --> ST["Storage"]
    DBS --> EF["Edge Functions"]
    DBS --> AL["Audit Log / Trigger"]

Server

Für die lokale Entwicklung nennt die aktuelle README Node.js ≥ 18 oder Bun, Docker / Docker Compose und die Supabase CLI. Der Vite-Dev-Server läuft laut README auf Port 8200, Supabase Studio auf 127.0.0.1:54323.

Die bisherige Dokumentation nennt zusätzlich den Betrieb unter /mnt/data/schwarmspeicher/schwarmspeicher-electrify_lokal in einem Docker-Compose-Stack sowie die Adresse http://schwarmspeicher.spl-tele.com:8200 im VPN und SPL-TELE-Netzwerk. Diese konkrete produktive Serverkonfiguration ist im bereitgestellten Quellpaket nicht enthalten und konnte daraus nicht erneut verifiziert werden.