No description
Find a file
2026-07-23 21:38:20 +02:00
data/backups Added 1B, 2 and added bootstrap again for site 2026-05-03 22:04:45 +02:00
docs Add atomic device row updates 2026-07-23 21:38:20 +02:00
scripts Remove project device mirror fields 2026-07-23 20:55:26 +02:00
src Add atomic device row updates 2026-07-23 21:38:20 +02:00
tests Add atomic device row updates 2026-07-23 21:38:20 +02:00
.dockerignore Add Docker development workflow 2026-07-22 22:42:28 +02:00
.gitignore Ignore local dev logs 2026-07-22 20:58:21 +02:00
AGENTS.md Rewrite project documentation 2026-07-23 21:05:43 +02:00
compose.yaml Allow Next.js Docker startup writes 2026-07-22 23:08:15 +02:00
Dockerfile Add Docker development workflow 2026-07-22 22:42:28 +02:00
drizzle.config.js first commit 2026-04-30 18:22:10 +02:00
drizzle.config.ts first commit 2026-04-30 18:22:10 +02:00
index.html first commit 2026-04-30 18:22:10 +02:00
next-env.d.ts Update generated Next.js types 2026-07-22 23:08:32 +02:00
next.config.mjs Add Docker development workflow 2026-07-22 22:42:28 +02:00
package-lock.json Rewrite frontend, added rooms, voltage selection per project, startet with todos 2026-05-01 17:07:56 +02:00
package.json Add atomic device row updates 2026-07-23 21:38:20 +02:00
README.md Rewrite project documentation 2026-07-23 21:05:43 +02:00
styles.css first commit 2026-04-30 18:22:10 +02:00
tsconfig.json first commit 2026-04-30 18:22:10 +02:00
tsconfig.next.json First frontend 2026-04-30 21:37:21 +02:00

Leistungsbilanz

Leistungsbilanz ist eine Webanwendung für die elektrische Ausführungsplanung. Im Mittelpunkt steht ein tabellenähnlicher Stromkreislisten-Editor, der Stromkreise, Gerätezeilen und wiederverwendbare Projektgeräte fachlich getrennt behandelt.

Das Projekt befindet sich in aktiver Entwicklung. Der lokale Entwicklungsbetrieb mit SQLite und Docker Compose ist unterstützt. Ein Produktionsdeployment, persistentes Undo/Redo, Projektversionen und der Revit-/IFCGUID-Datenaustausch sind noch nicht implementiert.

Unterstützter Arbeitsablauf

  • Projekte, Verteilungen, Etagen und Räume verwalten
  • pro Verteilung eine Stromkreisliste mit festen Bereichen bearbeiten
  • leere, einzeilige und mehrzeilige Stromkreise abbilden
  • Stromkreise und Gerätezeilen per Drag-and-drop umstrukturieren
  • Projektgeräte einfügen, verknüpfen und kontrolliert synchronisieren
  • komplette Stromkreisblöcke filtern und sortieren
  • BMKs stabil halten und nur auf ausdrücklichen Befehl neu nummerieren
  • Änderungen innerhalb der aktuellen Editorsitzung rückgängig machen und wiederholen

Technik

  • Next.js 16, React 19 und TypeScript für das Frontend
  • Express 5 und Zod für die API
  • SQLite, better-sqlite3 und Drizzle ORM für die Persistenz
  • eigener Spreadsheet-Grid statt eines Bootstrap-Tabellenframeworks
  • Node.js-Test-Runner für Domain-, Grid- und SQLite-Integrationstests

Schnellstart mit Docker

Voraussetzungen:

  • Git
  • Docker Desktop mit Docker Compose
git clone <repository-url>
Set-Location leistungsbilanz-ts
docker compose up --build --detach

Danach:

Der API-Container führt ausstehende Migrationen und die Schemaprüfung beim Start automatisch aus. Die SQLite-Datei liegt auf dem Host unter data/leistungsbilanz.db und bleibt beim Stoppen erhalten.

docker compose ps
docker compose logs --follow
docker compose down

Der Compose-Stack startet Entwicklungsserver mit Quellcode-Mounts. Er ist kein Produktionsdeployment. Details stehen in Deployment und Betrieb.

Direkte lokale Entwicklung

Voraussetzungen:

  • Node.js 22
  • npm
npm ci
npm run db:migrate
npm run db:verify:circuit-schema
npm run dev:api

In einem zweiten Terminal:

npm run dev:web

Frontend und API laufen anschließend auf denselben Ports wie im Docker-Setup.

Qualitätssicherung

npm test
npm run build:api
npm run build:web
npx tsc --noEmit -p tsconfig.next.json

Wichtige Datenbankbefehle:

npm run db:backup
npm run db:migrate
npm run db:verify:circuit-schema
npm run db:generate

db:backup verwendet die SQLite-Online-Backup-API und prüft das Ergebnis auf Integrität und Fremdschlüsselverletzungen. Vor jeder Migration einer bestehenden Datenbank ist ein Backup erforderlich.

db:migrate:legacy-consumers und db:backfill:sections sind ausschließlich Upgrade-Werkzeuge für ältere Datenbanken. Neue Installationen benötigen sie nicht.

Dokumentation

Für LLM-gestützte Änderungen enthält AGENTS.md die verbindlichen Domänenregeln, unterstützten Einstiegspunkte und Architekturgrenzen.