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:
- Begrüßung mit Avatar und Name aus dem Profil
- Eine Multiple-Choice-Frage zu Wien
- Geschafft-Screen mit Score
Alles in 1–2 Minuten durchspielbar. Demonstriert:
- Input-API: Token aus URL, Profil-Abruf via
/api/student/me - Output-API: Resume-State per
/api/module/statePUT, Endergebnis per/api/resultPOST - 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-standardundde-AT-easy
Lokal ausprobieren
- XAMPP starten
- Mock-Token holen:
http://localhost/geograsim/v2-platform/mock/issue-token.php?student=42 - 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 - Mock-Logs live mitlesen:
tail -f v2-platform/mock/uploads/log.jsonl
Probiere auch:
student=43für Easy-Sprache-Modus (lang=de-AT-easysetzen)student=44fü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:
- manifest.json — wie wird ein Modul deklariert
- public/game.html — wie sieht die Mindest-Mechanik aus, wie wird Telemetry aufgerufen
- public/i18n/*.json — wie ist Easy-Sprache organisiert
- tests/mock-platform.html — wie testet man ein Modul ohne echte Plattform
Keine 3000 Zeilen — bewusst klein gehalten. Einsteiger-Friendly.