Baustein 8: Lernzielkontrollen mit Freigabe, Abgabe und Korrektur

- Ausbilder gibt frei; vorher sieht der Azubi die Fragen nicht
- Freigabe laesst sich zuruecknehmen, solange nicht abgegeben wurde
- Antworten werden beim Tippen je Frage zwischengespeichert
- Musterloesungen erst nach dem Absenden: sichtbareKontrolle() entfernt sie
  serverseitig, bevor die Daten in die Ausgabe gelangen
- Korrektur mit Punkten und Anmerkung je Frage, Summe und Note laufen mit
- Notenschluessel der IHK; solange eine Frage offen ist, bleibt das Ergebnis
  vorlaeufig und die Kontrolle gilt nicht als korrigiert
- Ergebnis bei beiden sichtbar, Schnitt ueber alle Kontrollen
- Abgegebene Kontrollen unter "Was auf dich wartet" und im Wochenfortschritt
- scripts/pruefungen/musterloesung-dichtheit.mjs prueft die Sperre gegen den
  echten Wortlaut aus der Inhaltsdatei im rohen Seitenquelltext

36 neue Tests, davon 21 fuer die Sichtbarkeit der Musterloesung.
Insgesamt 277.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-11 08:57:00 +02:00
co-authored by Claude Opus 5
parent 7c4a051347
commit d226a6bae8
42 changed files with 2132 additions and 9 deletions
+39
View File
@@ -7,6 +7,45 @@ Format: `HH:MM–HH:MM (Dauer) · was gemacht wurde`
---
## 2026-09-11 · Baustein 8 – Lernzielkontrollen
| Von | Bis | Dauer | Tätigkeit |
|---|---|---|---|
| 06:25 | 06:35 | 0:10 | Notenschlüssel und Auswertung als reine Rechnung, 15 Tests |
| 06:35 | 06:45 | 0:10 | Sichtbarkeitsschicht für die Musterlösung, 21 Tests |
| 06:45 | 06:55 | 0:10 | Datenmodell, Migration, Repository, Serveraktionen |
| 06:55 | 07:15 | 0:20 | Fragebogen mit Zwischenspeichern, Korrekturansicht, Übersichten |
| 07:15 | 08:50 | 1:35 | Bau und Durchstich – davon über eine Stunde Wartezeit (siehe unten) |
**Summe Baustein 8: rund 2 h 25 min, davon knapp 1 h reine Wartezeit**
### Was aufgefallen ist
- Der Kern dieses Bausteins ist eine einzige Funktion: `sichtbareKontrolle()`
entfernt die Musterlösung, bevor die Daten in die Ausgabe gelangen. Sie nimmt
bewusst den ganzen Betrachter und den Bearbeitungsstand entgegen statt eines
vorberechneten Wahrheitswerts – so kann kein Aufrufer versehentlich `true`
übergeben.
- Beim Lecktest zunächst ein Fehlalarm: Die Prüfung meldete
„Discover, Offer, Request, Acknowledge" im Quelltext. Das war meine **eigene
Testantwort**, die ich zuvor eingetippt hatte. Danach ein sauberer Aufbau,
der die Musterlösungen direkt aus der Inhaltsdatei liest und gegen Text
prüft, den ich nicht selbst eingebe. Ergebnis: vor der Abgabe null Treffer,
nach der Abgabe alle fünf – damit ist auch belegt, dass die Suche überhaupt
finden kann.
- **Eine Stunde an der Umgebung verloren.** Erst hing `next build` endlos, weil
der laufende Server `.next` festhielt und ich ihn mitten im Schreiben
abgeschossen hatte. Nach `Remove-Item .next -Recurse` lief der Bau in acht
Sekunden. Danach brauchte `next start` **2822 Sekunden** bis „Ready" – das
Dateisystem war zu dem Zeitpunkt extrem langsam, vermutlich ein Virenscanner
über dem frisch gebauten Verzeichnis. Lehre: Vor einem Bau immer erst den
Server stoppen, und ein hängender Start ist nicht zwingend ein Codefehler.
- Die laufende Summe beim Korrigieren war nachträglich die beste Idee an der
Oberfläche: Man sieht beim Verteilen der Punkte, auf welcher Note man landet,
statt es hinterher zu erfahren.
---
## 2026-09-10 · Baustein 7 – Berichtsheft
| Von | Bis | Dauer | Tätigkeit |