docs/ANLEITUNG.md: 20 Abschnitte, 27 Bildschirmfotos, getrennt fuer Ausbilder und Azubi, dazu "Wenn etwas nicht geht". Die Bilder entstehen automatisiert ueber npm run screenshots - was dort steht, ist gemessen und nicht gemalt. scripts/pruefungen/abnahme.mjs (npm run abnahme) laeuft gegen eine frische, leere Datenbank in einem Wegwerfverzeichnis: aufsetzen, Konten anlegen, arbeiten, abnehmen, sichern, beschaedigen, zurueckspielen. Eine Sicherung, die nie zurueckgespielt wurde, ist keine Sicherung. 33 von 33 Pruefungen erfuellt, Protokoll in docs/ABNAHME.md. Dabei drei echte Fehler gefunden, alle in Wegen, die nie ausgefuehrt worden waren: - Die Sicherungsskripte liefen nicht in Git Bash, obwohl das in ihrem Kopf stand: tar deutet den Doppelpunkt in "C:\..." als Rechnernamen. Beide wechseln jetzt erst ins Verzeichnis und uebergeben einen blossen Dateinamen. - Auf einer frischen Datenbank gibt es noch kein Wochenblatt; der Weg jedes neuen Azubis war nie durchlaufen worden. - Der Abnahmelauf selbst liess unter Windows seinen Server ueberleben (kill() beendet nur die cmd.exe) und prueft deshalb jetzt vorher, ob der Port frei ist - sonst haette er gegen fremde Daten geprueft. Fassung 1.0.0: package.json stand noch auf 0.1.0, waehrend das Aenderungsprotokoll bei 0.9.0 war. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
134 lines
6.7 KiB
Markdown
134 lines
6.7 KiB
Markdown
# 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
|
||
- [x] **B6 · Checklisten mit Durchläufen und PDF**
|
||
- [x] Durchlauf aus einer Vorlage, mit Datum, Ticket und Kunde
|
||
- [x] Schritt für Schritt abhaken, Bemerkung je Schritt
|
||
- [x] Fortschritt je Gruppe (Vorbereiten / Durchführen / Prüfen / Abschließen)
|
||
- [x] Abschließen erst, wenn alles abgehakt ist
|
||
- [x] Abgeschlossene Durchläufe bleiben als Nachweis und sind gesperrt
|
||
- [x] PDF-Export mit Unterschriftenzeilen
|
||
- [x] Ausbilder liest mit, hakt aber nicht für den Azubi ab
|
||
- [x] **B7 · Berichtsheft: Tagesnotizen, Vorschläge, Prüfung, Abzeichnen, PDF**
|
||
- [x] Tägliche Stichworte, je Tag ein eigenes kleines Formular
|
||
- [x] Vorschläge aus Tagesnotizen, Aufgaben, Checklisten und Handouts
|
||
- [x] Formulierungshilfe: Tätigkeitsverben und „so besser nicht / so ist es richtig"
|
||
- [x] Prüfung auf fehlende Stunden, Floskeln und schützenswerte Angaben
|
||
- [x] Warnung, keine Sperre – Einreichen ist immer möglich
|
||
- [x] Einreichen, zurückgeben mit Anmerkung, abzeichnen; danach gesperrt
|
||
- [x] Fehlende Wochen werden benannt und lassen sich nachtragen
|
||
- [x] PDF im IHK-Layout, einzeln oder als ganzer Zeitraum
|
||
|
||
## 0.5 – Bewertung
|
||
|
||
- [x] **B8 · Lernzielkontrollen mit Freigabe, Abgabe, Korrektur**
|
||
- [x] Ausbilder gibt frei, kann die Freigabe vor der Abgabe zurücknehmen
|
||
- [x] Fragen erst ab der Freigabe sichtbar
|
||
- [x] Antworten werden beim Tippen zwischengespeichert
|
||
- [x] Musterlösungen erst nach dem Absenden – serverseitig entfernt,
|
||
nicht in der Oberfläche versteckt
|
||
- [x] Korrektur mit Punkten je Frage, Anmerkung je Frage und gesamt
|
||
- [x] Notenschlüssel der IHK, Zwischenstand beim Korrigieren sichtbar
|
||
- [x] Ergebnis bei beiden sichtbar, Verlauf über alle Kontrollen
|
||
- [x] **B9 · Auswertung, Rahmenplanabdeckung, Feedbackgespräch**
|
||
- [x] Stand des Azubis: Handouts, Merkkarten, Aufgaben, Berichtsheft
|
||
- [x] Rahmenplanabdeckung mit vier Lagen statt „erledigt/offen"
|
||
- [x] Lücken im Lehrgang werden getrennt ausgewiesen
|
||
- [x] Lernfeldabdeckung nach Ausbildungsjahr
|
||
- [x] Ergebnisverlauf der Lernzielkontrollen
|
||
- [x] Feedbackgespräch mit Leitfaden und Bewertungsbogen
|
||
- [x] Beide Seiten bewerten getrennt, Abweichungen werden hervorgehoben
|
||
- [x] Nach beidseitiger Bestätigung unveränderlich, PDF für die Akte
|
||
|
||
## 1.0 – Abrundung
|
||
|
||
- [x] **B10 · PWA, Offlinebetrieb, Druckansichten, Feinschliff**
|
||
- [x] Installierbar: Manifest, Symbole aus dem eigenen Zeichen erzeugt
|
||
- [x] Offline: Merkkarten und gelesene Handouts, Bewertungen in einer
|
||
Warteschlange, nachgereicht bei Verbindung
|
||
- [x] Nichts Bewertungsrelevantes im Browserspeicher – nachgewiesen
|
||
- [x] Druckansichten, auch bei eingestellter dunkler Fassung
|
||
- [x] Anleitung mit Screenshots (`docs/ANLEITUNG.md`), Bilder automatisiert
|
||
über `npm run screenshots`
|
||
- [x] Ende-zu-Ende-Test über den Hauptweg (`scripts/pruefungen/abnahme.mjs`)
|
||
- [x] Abnahmekriterien einzeln durchgespielt und protokolliert
|
||
(`docs/ABNAHME.md`)
|
||
|
||
---
|
||
|
||
## 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
|