35 lines
2.0 KiB
Markdown
35 lines
2.0 KiB
Markdown
# Anleitung für Prüfer
|
||
|
||
> Stand: 29.10.2026 · Ziel: jede Frage fachlich prüfen und freigeben oder ablehnen.
|
||
|
||
## Voraussetzungen
|
||
- Python ≥ 3.11 (nur Standardbibliothek), ein aktueller Browser (Firefox, Chromium).
|
||
- Editor mit JSON-Schema-Unterstützung (z. B. VSCode/VSCodium) – validiert beim Tippen über `$schema`.
|
||
|
||
## Ablauf
|
||
1. Paket entpacken, `index.html` öffnen und die Fragen im **Lernmodus** durchgehen (Topic-Filter auf der Startseite, Reihenfolge „nach Objective“, Optionen nicht mischen).
|
||
2. Fragen im Quelltext `data/<prüfung>/questions_<topic>.json` prüfen – Regeln: [question_rules.md](question_rules.md), Prüfungsrahmen: [exam_format.md](exam_format.md).
|
||
3. Ergebnis je Frage als Vermerk eintragen:
|
||
```json
|
||
"review": { "status": "approved", "by": "<Name oder Rolle>", "date": "2026-11-02" }
|
||
"review": { "status": "rejected", "by": "<Name oder Rolle>", "date": "2026-11-02", "note": "Option ‚…‘ ist ebenfalls korrekt" }
|
||
```
|
||
Korrekturen direkt in der Frage vornehmen und `meta.version` der Datei erhöhen.
|
||
4. Prüfen und bauen:
|
||
```bash
|
||
python3 tools/build_bank.py -c # Regeln, Prüfstatus, Abdeckung je Objective
|
||
python3 tools/build_bank.py # js/bank.js neu (verschlüsselt, eigener PSK in tools/.psk)
|
||
python3 tools/build_bank.py --approved-only -e # nur Freigegebenes, Export nach dist/
|
||
python3 -m http.server 8080 -d dist # Export ausliefern
|
||
```
|
||
5. Geänderte `questions_*.json` zurückgeben (nicht `js/bank.js`, nicht `tools/.psk`).
|
||
|
||
## Neue Fragen
|
||
Nächste freie Nummer im Objective verwenden (`<objective>-<NNN>`), Format siehe [`../README.md`](../README.md#format-einer-frage). Ohne Build testen: Datei im Simulator über **Import** laden.
|
||
|
||
## Tests
|
||
```bash
|
||
chromium --headless --allow-file-access-from-files --virtual-time-budget=5000 --dump-dom tests/selftest.html | grep -o 'RESULT[^<]*'
|
||
chromium --headless --allow-file-access-from-files --virtual-time-budget=40000 --dump-dom tests/ui_smoke.html | grep -oE '(FAIL|RESULT)[^<]*'
|
||
```
|