Files
geograsim/v2-modules/hallo-welt

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:
    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.