# Änderungsprotokoll Alle nennenswerten Änderungen an der Lern-Bar stehen hier. Aufbau nach [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), Versionsnummern nach [Semantischer Versionierung](https://semver.org/lang/de/). ## Wie versioniert wird - **Patch** (0.1.**x**) – Fehlerbehebungen, Textkorrekturen, Inhaltsänderungen - **Minor** (0.**x**.0) – ein neuer Baustein aus dem [Fahrplan](ROADMAP.md) - **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: ```bash 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 [Unveröffentlicht]: #unveröffentlicht [0.1.0]: #010--2026-09-10