Files
geograsim/v2-modules/hallo-welt/README.md
T
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

72 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hallo Welt — V2-Beispiel-Modul
Ein **lebendes Referenz-Modul** für alle Modul-Instanzen, die ein
V2-Modul bauen wollen. Erfüllt **alle 6 Pflicht-Verträge** der Spec
(siehe `../../v2-modules/_spec/`).
## Was es macht
Drei Mini-Schritte:
1. Begrüßung mit Avatar und Name aus dem Profil
2. Eine Multiple-Choice-Frage zu Wien
3. Geschafft-Screen mit Score
Alles in 12 Minuten durchspielbar. Demonstriert:
- Input-API: Token aus URL, Profil-Abruf via `/api/student/me`
- Output-API: Resume-State per `/api/module/state` PUT, Endergebnis per `/api/result` POST
- Telemetry-API: Heartbeat alle 15s, drei Milestones, Stuck-Detection nach 90s
- Plattform-Standards: A11y (High-Contrast, Reduced Motion, Keyboard, ARIA), Easy-Sprache, Sprachregeln (keine Spielsprache), iPad-Pattern (dvh, viewport-fit, sticky actions)
- Manifest mit allen Pflichtfeldern
- i18n-Files für `de-AT-standard` und `de-AT-easy`
## Lokal ausprobieren
1. XAMPP starten
2. Mock-Token holen:
```
http://localhost/geograsim/v2-platform/mock/issue-token.php?student=42
```
3. Modul mit Token aufrufen:
```
http://localhost/geograsim/v2-modules/hallo-welt/public/game.html?session_token=<TOKEN>&student_id=42&class_id=99&mode=free&difficulty=L1&lang=de-AT-standard&resume=0
```
4. Mock-Logs live mitlesen:
```bash
tail -f v2-platform/mock/uploads/log.jsonl
```
Probiere auch:
- `student=43` für Easy-Sprache-Modus (`lang=de-AT-easy` setzen)
- `student=44` für High-Contrast + Reduced Motion + Screen-Reader-Profil
## Struktur
```
hallo-welt/
├── manifest.json
├── README.md
├── public/
│ ├── game.html ← Entry Point (HTML+CSS+JS, inline)
│ ├── assets/
│ │ └── card.svg ← Cockpit-Karten-Bild
│ └── i18n/
│ ├── de-AT-standard.json ← Texte
│ └── de-AT-easy.json ← Easy-Sprache-Texte
├── db/
│ └── migrations.sql ← leer (kein eigenes Schema)
└── tests/
└── mock-platform.html ← Standalone-Test-Harness
```
## Was du als Modul-Bauer*in lernen kannst
Lies in dieser Reihenfolge:
1. **manifest.json** — wie wird ein Modul deklariert
2. **public/game.html** — wie sieht die Mindest-Mechanik aus, wie wird Telemetry aufgerufen
3. **public/i18n/*.json** — wie ist Easy-Sprache organisiert
4. **tests/mock-platform.html** — wie testet man ein Modul ohne echte Plattform
Keine 3000 Zeilen — bewusst klein gehalten. Einsteiger-Friendly.