Files
lernbar/CHANGELOG.md
T
Florian WildeandClaude Opus 5 e856349cd4 Baustein 1: Grundgeruest, Datenbank, Anmeldung, zwei Rollen
Legt das Fundament der Lern-Bar an:

- Next.js 15 (App Router), React 19, TypeScript, ESLint, Vitest
- SQLite ueber Drizzle hinter einer Repository-Schicht
- Eigener Migrationslauf mit Pruefsummen, beim Start angewendet
- Argon2id, serverseitige Sitzungen, HttpOnly-Cookie, SameSite=Lax
- Rollen Ausbilder und Azubi, Rechteregeln als reine Funktionen
- Verwaltung: Azubikonto und Ausbildung anlegen, Passwort, Sperren
- Gestaltung Petrol/Bernstein, helle und dunkle Darstellung
- Dockerfile, docker-compose, Lebenszeichen, update.sh mit Rueckfall
- Sicherung und Wiederherstellung als Shell-Skripte
- 29 Tests fuer Rechte, Zeitrechnung und Migrationslauf

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 00:52:44 +02:00

2.6 KiB
Raw Blame History

Änderungsprotokoll

Alle nennenswerten Änderungen an der Lern-Bar stehen hier. Aufbau nach Keep a Changelog, Versionsnummern nach Semantischer Versionierung.

Wie versioniert wird

  • Patch (0.1.x) – Fehlerbehebungen, Textkorrekturen, Inhaltsänderungen
  • Minor (0.x.0) – ein neuer Baustein aus dem Fahrplan
  • Major (x.0.0) – 1.0.0 ist die erste abnahmefähige Fassung; danach nur noch bei Änderungen, die einen Eingriff beim Betrieb erfordern (Datenformat, Umgebungsvariablen, Betriebsablauf)

Eine Fassung wird so festgeschrieben:

npm version minor -m "Fassung %s"   # hebt package.json und setzt ein Git-Etikett
git push --follow-tags

Vor npm version wandert der Abschnitt „Unveröffentlicht" unter eine neue Überschrift mit Nummer und Datum.


Unveröffentlicht

0.1.0 – 2026-09-10

Erster Baustein: das Fundament steht, die Anwendung lässt sich starten, anmelden und verwalten.

Hinzugefügt

  • Projektgerüst mit Next.js 15 (App Router), React 19, TypeScript
  • SQLite über Drizzle ORM; der gesamte Datenzugriff liegt hinter einer Repository-Schicht, damit ein späterer Wechsel auf PostgreSQL kein Umbau ist
  • Eigener Migrationslauf: src/lib/db/migrationen/*.sql werden beim Start einmalig angewendet und mit Prüfsumme vermerkt; nachträgliche Änderungen an bereits angewendeten Dateien lassen die Anwendung mit klarer Meldung abbrechen
  • Anmeldung mit Argon2id, serverseitigen Sitzungen, HttpOnly-Cookie und SameSite=Lax; im Cookie steht nur ein Zufallswert, gespeichert wird dessen SHA-256-Abdruck
  • Zwei Rollen (ausbilder, azubi); die Rechteregeln liegen als reine Funktionen in src/lib/auth/regeln.ts und sind vollständig testbar
  • Verwaltungsbereich für den Ausbilder: Azubikonto samt Ausbildung anlegen, Eckdaten ändern, Passwort setzen, Konto sperren und entsperren
  • Gestaltung in Petrol/Bernstein, helle und dunkle Darstellung mit Umschalter in der Kopfzeile, nur Systemschriften, keine Ressourcen von außen
  • Zeitrechnung für Europe/Berlin und Kalenderwochen nach ISO 8601
  • Mehrstufiges Dockerfile, docker-compose.yml mit einem Dienst und einem Volume, Lebenszeichen unter /api/gesundheit
  • update.sh für den Linux-Server: sichert, holt den Quelltext, baut, schaltet um und fällt bei fehlendem Lebenszeichen automatisch auf die vorherige Fassung zurück
  • sicherung.sh und wiederherstellen.sh für Datenbank und Anhänge
  • npm run konto:anlegen für das erste Ausbilderkonto