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>
This commit is contained in:
Florian Wilde
2026-09-11 19:26:34 +02:00
co-authored by Claude Opus 5
parent 2babef9293
commit c61d5711e0
21 changed files with 1201 additions and 15 deletions
+49
View File
@@ -7,6 +7,55 @@ Format: `HH:MM–HH:MM (Dauer) · was gemacht wurde`
---
## 2026-09-11 · Baustein 10 – PWA, Offline, Druck, Anleitung
| Von | Bis | Dauer | Tätigkeit |
|---|---|---|---|
| 14:20 | 14:50 | 0:30 | Symbole, Manifest, Dienstarbeiter mit Speicherregel |
| 14:50 | 15:10 | 0:20 | Warteschlange, Schnittstelle, Netzleiste |
| 15:10 | 15:30 | 0:20 | Druckpalette, Seitenumbrüche, Druckknöpfe |
| 15:30 | 15:50 | 0:20 | Durchstich mit echtem Abschalten des Netzes |
| 15:50 | 16:20 | 0:30 | Anleitung mit Bildschirmfotos |
| 16:20 | 17:40 | 1:20 | Abnahmelauf – und die Suche nach einem Fehler, der meiner war |
**Summe Baustein 10: rund 3 h 20 min**
### Was aufgefallen ist
- Beim Offlinebetrieb ist die interessante Frage nicht, **wie** man
zwischenspeichert, sondern **was**. Ein Dienstarbeiter, der alles ablegt,
hebelt die Rechteprüfung aus: Was im Browsercache liegt, wird nie wieder
serverseitig geprüft. Deshalb gibt es eine ausdrückliche Liste – Handouts,
Merkkarten, Glossar, eigene Woche – und sonst nichts. Der Durchstich prüft
das nach, indem er eine Kontrollseite öffnet und danach im Speicher
nachsieht.
- Die Warteschlange gehört an die **Benutzerkennung**, nicht an das Gerät. Ein
Werkstattrechner wird geteilt; unter einem festen Schlüssel bekäme der
Zweite die offenen Bewertungen des Ersten aufs Konto.
- Der Tag einer nachgereichten Bewertung kommt vom Gerät – sonst verliert
jemand, der freitags im Keller lernt und sich montags verbindet, seinen
Freitag. Er wird aber **auf heute gedeckelt**: Sonst ließe sich das
Wiederholen wegstellen, indem man die Uhr vordatiert.
- Beim Druck lag ein echter Fehler: Wer die dunkle Fassung eingestellt hatte,
druckte schwarze Flächen. Aufgefallen ist das erst, weil der Durchstich die
Farben im Druckmodus ausliest, statt nur zu prüfen, dass die Navigation
verschwindet.
- **Die längste Suche des Tages war ein Fehler in meinem Prüfaufbau, nicht in
der Anwendung.** Der Abnahmelauf startet einen eigenen Server auf Port 3399.
Unter Windows beendet `kill()` bei einem über die Eingabeaufforderung
gestarteten Prozess nur diese, nicht Node darunter. Der alte Server überlebte,
belegte den Port, und der nächste Lauf prüfte gegen den **alten**
Datenbestand: Der Azubi stand in der Oberfläche, aber nicht in der Datenbank,
die ich las. Jetzt wird ohne Eingabeaufforderung gestartet, der ganze
Prozessbaum beendet – und der Lauf bricht mit einer klaren Meldung ab, wenn
der Port schon belegt ist.
- Die Sicherungsskripte behaupteten im Kopf, sie liefen auch in Git Bash. Das
stimmte nicht: `tar` deutet den Doppelpunkt in `C:\...` als Rechnernamen.
Aufgefallen ist das erst, als die Sicherung zum ersten Mal wirklich
zurückgespielt wurde – eine Sicherung, die man nie zurückspielt, ist keine.
---
## 2026-09-11 · Baustein 9 – Auswertung und Feedbackgespräch
| Von | Bis | Dauer | Tätigkeit |