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>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Ä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
|
||||
Reference in New Issue
Block a user