Files
lernbar/docs/ABNAHME.md
T
Florian WildeandClaude Opus 5 c61d5711e0 Baustein 10b: Anleitung mit Screenshots, Abnahmelauf, Fassung 1.0.0
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>
2026-09-11 19:26:34 +02:00

2.6 KiB

Abnahmeprotokoll

Erzeugt am 2026-09-11 17:16 Uhr

Erzeugt von scripts/pruefungen/abnahme.mjs gegen eine frische, leere Datenbank.

A1 · Aus dem Nichts aufsetzbar

  • ✓ Das erste Ausbilderkonto entsteht auf der Kommandozeile — ohne Fehler
  • ✓ Die Datenbank wurde angelegt und die Migrationen liefen an
  • ✓ Die Anwendung startet und meldet sich gesund
  • ✓ Heile Inhalte werden ohne Beanstandung gelesen — Inhalte in Ordnung
  • ✓ Ein Inhaltsfehler lässt die Prüfung fehlschlagen — Ende 1
  • ✓ Die Meldung nennt die Datei — kaputte-inhalte/handouts/N3-subnetting-rechnen.md:7 (rahmenplan)
  • ✓ Die Meldung nennt die richtige Zeile — erwartet Zeile 7
  • ✓ Die Meldung nennt den fehlerhaften Wert
  • ✓ Die Meldung sagt, wo die gültigen Werte stehen

A2 · Zwei Rollen, keine Selbstregistrierung

  • ✓ Die Anmeldeseite bietet keine Registrierung
  • ✓ Ohne Anmeldung führt jeder Pfad zur Anmeldung — HTTP 307
  • ✓ Der Ausbilder meldet sich an

A3 · Der Ausbilder legt Konten an

  • ✓ Der Azubi steht in der Verwaltung
  • ✓ Das Passwort ist in der Oberfläche nirgends mehr zu sehen
  • ✓ In der Datenbank steht kein Klartextpasswort
  • ✓ Das Passwort liegt als Argon2id-Hash — $argon2id$v=19$m=19456,t=2,p=1

A4 · Der Azubi arbeitet

  • ✓ Der Azubi meldet sich mit dem vergebenen Passwort an
  • ✓ Ein Handout lässt sich als gelesen markieren
  • ✓ Eine Merkkarte lässt sich bewerten — Zuletzt: kommt morgen.

A5 · Aufgabe abgeben und abnehmen

  • ✓ Der Azubi hält seine Arbeit in Notizen fest
  • ✓ Der Azubi meldet die Aufgabe zur Abnahme
  • ✓ Die Aufgabe erscheint beim Ausbilder zur Abnahme
  • ✓ Der Ausbilder nimmt die Aufgabe ab
  • ✓ Für den Azubi ist die abgenommene Aufgabe gesperrt
  • ✓ Die Abnahme schlägt in der Rahmenplanabdeckung durch
  • ✓ Lücken im Lehrgang werden getrennt ausgewiesen

A6 · Rechte serverseitig

  • ✓ Der Azubi kommt nicht in die Verwaltung — HTTP 307

A7 · Berichtsheft

  • ✓ Der Azubi legt das Wochenblatt der laufenden Woche an
  • ✓ Ein Wochenblatt lässt sich öffnen
  • ✓ Das Wochenblatt kommt als PDF heraus — HTTP 200, 2646 Bytes

A8 · Sicherung zurückspielen

  • ✓ Die Sicherung läuft durch — lernbar-20260911-171627.tar.gz
  • ✓ Zum Beweis wird der Datenbestand beschädigt — 2 → 1 Konten
  • ✓ Die Rückspielung läuft durch — ohne Fehler
  • ✓ Der gelöschte Azubi ist wieder da — Tim Vogt
  • ✓ Auch der Lernverlauf kam mit zurück — 1 Einträge
  • ✓ Der überschriebene Stand wurde zur Seite gelegt, nicht gelöscht — verdraengt-20260911-171632

36 von 36 Prüfungen erfüllt.