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:
Florian Wilde
2026-09-10 00:52:44 +02:00
co-authored by Claude Opus 5
commit e856349cd4
51 changed files with 11883 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
# Fahrplan
Die Bausteine werden der Reihe nach umgesetzt. Nach jedem Baustein gibt es
einen lauffähigen Stand, einen Eintrag im [Änderungsprotokoll](CHANGELOG.md)
und eine Zeitnotiz im [Arbeitstagebuch](DEVLOG.md).
Legende: `[ ]` offen · `[~]` in Arbeit · `[x]` fertig
---
## 0.1 – Fundament
- [x] **B1 · Gerüst, Docker, Datenbank, Migrationen, Anmeldung, zwei Rollen**
- [x] Next.js 15 (App Router), TypeScript, ESLint, Vitest, Playwright
- [x] SQLite über Drizzle, eigener Migrationslauf beim Start
- [x] Argon2id, serverseitige Sitzungen, HttpOnly-Cookie, SameSite=Lax
- [x] Rollen `ausbilder` / `azubi`, reine Rechteregeln getrennt testbar
- [x] Verwaltung: Azubikonto und Ausbildung anlegen, Passwort setzen, sperren
- [x] Dockerfile (mehrstufig), docker-compose.yml, Lebenszeichen
- [x] `update.sh` für den Linux-Server mit Sicherung und Rückfall
- [x] `sicherung.sh` / `wiederherstellen.sh`
## 0.2 – Inhalte
- [ ] **B2 · Inhalte einlesen und validieren, Handouts anzeigen, Suche**
- [ ] Markdown mit YAML-Frontmatter, Zod-Prüfung, Start bricht bei Fehler ab
- [ ] Fehlermeldung nennt Datei und Zeile
- [ ] Handout-Ansicht mit festem Aufbau, Themenblöcke, „gelesen" merken
- [ ] Volltextsuche über alle Handouts
- [ ] Neu einlesen bei Dateiänderung im Entwicklungsbetrieb
## 0.3 – Woche und Wiederholung
- [ ] **B3 · Wochenplan als Startseite, Fortschritt, Wochen verschieben**
- [ ] **B4 · Merkkarten mit Wiederholung nach Zeitabstand (SM-2)**
## 0.4 – Nachweise
- [ ] **B5 · Praxisaufgaben mit Anhängen und Abnahme**
- [ ] **B6 · Checklisten mit Durchläufen und PDF**
- [ ] **B7 · Berichtsheft: Tagesnotizen, Vorschläge, Prüfung, Abzeichnen, PDF**
## 0.5 – Bewertung
- [ ] **B8 · Lernzielkontrollen mit Freigabe, Abgabe, Korrektur**
- [ ] **B9 · Auswertung, Rahmenplanabdeckung, Feedbackgespräch**
## 1.0 – Abrundung
- [ ] **B10 · PWA, Offlinebetrieb, Druckansichten, Feinschliff**
- [ ] Anleitung mit Screenshots (`docs/ANLEITUNG.md`), Bilder automatisiert
über `npm run screenshots`
- [ ] Ende-zu-Ende-Test über den Hauptweg
- [ ] Abnahmekriterien einzeln durchgespielt und protokolliert
---
## Danach – bewusst zurückgestellt
- Erinnerung freitags per E-Mail (in der Anwendung reicht zunächst)
- Importskript für vorhandenes Material (52 Handouts, 8 Checklisten, …),
sobald die Quelldateien vorliegen
- Wechsel auf PostgreSQL (vorbereitet durch die Repository-Schicht, aber
ohne Anlass nicht sinnvoll)
## Ausdrücklich nicht geplant
Mehrmandantenfähigkeit · Chat und Kommentare · Gamification ·
Inhaltseditor in der Oberfläche · IHK-Schnittstellen · KI-Funktionen