Files
lernbar/ROADMAP.md
T
Florian WildeandClaude Opus 5 ffbca01bdc Baustein 5: Praxisaufgaben mit Anhaengen und Abnahme
- Status offen / in Arbeit / zur Abnahme / abgenommen, mit Zeitstempeln
- Notizfeld fuer den Azubi, Dateianhaenge bis 25 MB
- Speicherpfad nur aus selbst erzeugter UUID, nie aus dem Dateinamen
- Auslieferung ueber /anhaenge/<kennung> mit Rechtepruefung bei jedem Abruf,
  CSP sandbox und nosniff; SVG ausdruecklich nicht erlaubt
- Anhaenge haengen an Aufgabe UND Azubi
- Ausbilder hakt Kriterien einzeln ab, Note und Rueckmeldung, Abnahme sperrt
- Zurueckgeben zur Nacharbeit
- "Was auf dich wartet" zeigt offene Abnahmen
- Abgenommene Aufgaben zaehlen im Wochenfortschritt mit

Behoben: Next.js deckelt Serveraktionen ab Werk bei 1 MB - damit waere kein
Handyfoto durchgekommen. bodySizeLimit jetzt 30 MB, Vorabpruefung im Browser,
client_max_body_size im Proxy-Beispiel auf 30m.

Geaendert: Seiten verweigern fremde Daten mit 404 statt mit einem Fehler.
Eigene Seiten fuer "Nicht gefunden" und Stoerfaelle.

24 neue Tests, insgesamt 157.

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

97 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- [x] **B2 · Inhalte einlesen und validieren, Handouts anzeigen, Suche**
- [x] Markdown mit YAML-Frontmatter, Zod-Prüfung, Start bricht bei Fehler ab
- [x] Fehlermeldung nennt Datei und Zeile
- [x] Handout-Ansicht mit festem Aufbau, Themenblöcke, „gelesen" merken
- [x] Volltextsuche über alle Handouts
- [x] Neu einlesen bei Dateiänderung im Entwicklungsbetrieb
- [x] Glossar mit automatischer Verlinkung in den Handouts
- [x] Beispielinhalte: 4 Wochen, 12 Handouts, 24 Merkkarten, 4 Aufgaben,
4 Checklisten, 2 Lernzielkontrollen, 24 Glossareinträge
- [x] Rahmenplan aus FIAusbV und KMK-Rahmenlehrplan als Nachschlagewerk
## 0.3 – Woche und Wiederholung
- [x] **B3 · Wochenplan als Startseite, Fortschritt, Wochen verschieben**
- [x] Wochenplan ist die Startseite des Azubis: Thema, Leitfrage, fünf Tage
mit Theorie und Praxis, Fortschrittsbalken, was noch offen ist
- [x] Ausbilder sieht dieselbe Woche plus den Stand seiner Azubis
- [x] Geplantes und tatsächliches Datum je Woche
- [x] Verschieben per Datumsfeld, wahlweise mit allen folgenden Wochen
- [x] Reihenfolge per Ziehen und Ablegen **und** per Tastatur
- [x] Zustand je Woche (geplant / läuft / abgeschlossen) und Notiz für den Azubi
- [x] Warnung bei sich überlappenden Terminen
- [x] **B4 · Merkkarten mit Wiederholung nach Zeitabstand (SM-2)**
- [x] Vereinfachtes SM-2 mit drei Bewertungsstufen statt sechs
- [x] Täglich fälliger Stapel, gedeckelt auf 20 Karten
- [x] Fünf Fächer zur Anzeige, abgeleitet aus dem Abstand
- [x] Filter nach Themenblock für gezieltes Üben vor der Kontrolle
- [x] Lernmodus fürs Handy: große Flächen, Antippen, Wischen, kein Hover
- [x] Am Rechner zusätzlich Leertaste und Tasten 1 / 2 / 3
- [x] Jede Bewertung wird mitgeschrieben (Verlauf für die spätere Auswertung)
- [x] Merkkarten zählen im Wochenfortschritt mit
## 0.4 – Nachweise
- [x] **B5 · Praxisaufgaben mit Anhängen und Abnahme**
- [x] Status offen / in Arbeit / zur Abnahme / abgenommen
- [x] Notizen des Azubis, Dateianhänge (Fotos, Bildschirmfotos, PDF)
- [x] Ausbilder hakt Kriterien einzeln ab, Note und Rückmeldung
- [x] Abnehmen sperrt die Aufgabe, Zurückgeben zur Nacharbeit
- [x] Anhänge nur über Kennung, Berechtigung bei jedem Abruf geprüft
- [x] „Was auf dich wartet" zeigt offene Abnahmen
- [x] Aufgaben zählen im Wochenfortschritt mit
- [ ] **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