Live-Cockpit · Konzept-Entwurf v2 — Thomas-Review eingearbeitet

Ziel: die Lehrperson sieht auf einen Blick, was in der Klasse gerade los ist — wer aktiv ist, wer hinterher ist, wer heute noch nichts gemacht hat, wer die Top 3 und wer die Schwächsten 3 sind — und kann pro Schüler:in bei Bedarf bis ins Detail einsteigen. Vier Ebenen: Status & Ranking ganz oben, dann Filter auf die ganze Klassenliste, dann pro Schüler:in eine Zeile mit Live-Stats (jeder Wert mit Range-Balken), und auf Klick der Detail-Drill-Down.

Änderungen vs. v1 (Thomas-Review 2026-06-10):
Ebene 1 · Klassen-Status auf einen Blick
4 jetzt aktiv
Schüler:innen mit Heartbeat in den letzten 30 s
9 heute aktiv
heute schon gearbeitet, gerade pausiert
12 heute noch nichts
kein Login seit heute 0:00 Uhr
0 brauchen Hilfe
stockt · viele Fehlversuche · Pilot-Übernahme

🏆 Top 3 — Benchmark gesamt

1. 🐬 Lenchen 87 %
2. 🐝 Franz 81 %
3. 🦫 Teresa 76 %

👀 Schwächste 3 — Benchmark gesamt

23. 🐉 Lukas 28 %
24. 🐧 bubi 19 %
25. ? Sabine – %
Zeitraum: Tag Woche Monat Schuljahr 💾 gemerkt 🔗 wirkt auch auf die Schüler-Fleißsäulen

📊 Klassen-Fleiß über Zeit

Diese Woche · Mo–So · Säule = aktive Lernzeit der ganzen Klasse · Farbe = Modul · Klassensumme 22 h 14 min
3 h 12 min
Mo
4 h 48 min
Di
2 h 30 min
Mi
3 h 50 min
Do
4 h 22 min
Fr · heute
45 min
Sa
So
🌍 Klima 🚁 Heli 🍽️ Weltküche 🚌 Busfahrt
Zeitraum-Filter · alle vier Varianten im Vergleich

Der Filter oben (Tag · Woche · Monat · Schuljahr) wirkt auf alle Fleiß-Säulen-Anzeigen gleichzeitig — Klassen-Fleiß im Live-Cockpit und Schüler:innen-Fleiß-Matrix im Ergebnisse-Tab. Die folgenden Skizzen zeigen, wie die Säulen-Auflösung pro Variante aussieht.

Tag · Stunden 0–24 · Schulkernzeit grau hinterlegt
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
📌 Die Schulkernzeit 8–13 Uhr ist hellgelb hinterlegt — so erkennt die Lehrperson schnell, ob im Unterricht oder vor allem als Hausübung gearbeitet wurde.
Monat · 30 Tage (1.–30.) · alle Tage sichtbar, leere Tage als gestrichelte Baseline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
📌 Wochenenden klar erkennbar als systematische Lücken (4./5., 11./12., 18./19., 25./26.).
Schuljahr · Aug–Jul · leere Monate am Anfang & Ende weggelassen
Sep8 h 12 min
Okt19 h 48 min
Nov24 h 30 min
Dez17 h 50 min
Jän28 h 04 min
Feb22 h 56 min
Mär25 h 30 min
Apr15 h 18 min
Mai29 h 12 min
Jun · aktuell12 h 04 min
📌 Aug 2025 und Jul 2026 ausgeblendet — vor Schulanfang und nach Schulschluss keine Aktivität, daher nicht relevant. Sobald in einem dieser Monate Aktivität entsteht, wird er automatisch eingeblendet.
Woche-Ansicht: siehe Ebene-1-Sektion oben (Mo–So, „heute" markiert) — das ist der Default-Filter beim ersten Aufruf des Cockpits (bei späteren Aufrufen die zuletzt gewählte Einstellung).
Polish-Details des Zeitraum-Filters

💡 Tooltips an den Filter-Pills

Hover über jede Pill zeigt eine Kurz-Spec — nützlich besonders für die Lehrperson, die das Cockpit zum ersten Mal sieht. Probier es oben am Filter mal aus.

TagHeute · 25 Stunden 0:00 – 24:00 · Schulkernzeit 8–13 Uhr hervorgehoben
WocheAktuelle Kalenderwoche · Mo–So · heutiger Tag markiert
MonatLetzte 30 Tage · alle Tage sichtbar, Wochenenden als Lücken erkennbar
SchuljahrAktuelles Schuljahr · ab Schulanfang (Land-abhängig) bis Schulende · leere Monate am Anfang/Ende weggelassen

💾 Persistenz der Auswahl

Die gewählte Einstellung wird in localStorage gespeichert. Bei jedem späteren Aufruf des Cockpits steht der Filter direkt auf dem zuletzt gewählten Wert — keine Mehrfach-Klicks pro Tag.

localStorage-Key: ggs-fleiss-range Mögliche Werte: day · week · month · year Default beim ersten Aufruf: week Sichtbar im UI: 💾 gemerkt (rechts neben den Pills)

Der Wert ist pro Lehrperson (Browser-lokal), nicht pro Klasse — das hält die Bedienung leichtgewichtig. Falls jemand mehrere Klassen oft umschaltet, kann später auf Server-Seite ein User-Preference-Feld dazu (siehe Memory).

🌍 Schuljahr aus Land · DACH+LI

Die Plattform bedient gezielt Österreich, Deutschland, Schweiz, Liechtenstein. Schul-Anfangs- und Endmonate ziehen wir aus App/php/lib/Country.php (existiert schon für andere Sprach-/Lehrplan-Themen).

LandSchulanfangSchulendeBemerkung
🇦🇹 ÖsterreichSeptemberJuli1. Schultag Mo nach 1. September (Ost) bzw. 2. Mo im September (West)
🇩🇪 DeutschlandAugust / SeptemberJulivariiert nach Bundesland · BY/BW: Mitte Sep · HH/B/MV: Anfang Aug
🇨🇭 SchweizAugustJuli / Augustvariiert nach Kanton · ZH/BE/SG: Mitte Aug · TI: Anfang Sep
🇱🇮 LiechtensteinAugustJuliangelehnt an Schweiz (Mitte Aug)

Konkret im Code: Country::schoolYearStart('AT') liefert {month: 9, dayApprox: 5}, Country::schoolYearStart('CH') liefert {month: 8, dayApprox: 15}. Die Schuljahr-Säulen-Anzeige beginnt beim ersten Monat nach dem Schulanfang mit Aktivität und endet beim letzten — leere Monate am Rand werden weggelassen (Sommerferien-Lücken im Schuljahr also auch automatisch unsichtbar, falls eine Klasse über Ferien nichts spielt).

DE-Bundesland-Logik: in DE genauer Schulanfang ist Bundesland-spezifisch. Pragmatisch: pro Klasse ein Feld classes.school_region (optional) — sonst Default „Mitte August". Sehr selten relevant für die Säulen-Anzeige, weil ein Säulen-Bucket ein ganzer Monat ist.

Implementierungs-Aufwand für die drei Polish-Punkte zusammen: ca. 1,5 Stunden. Tooltips sind reine title-Attribute (~15 min), localStorage-Persistenz ist ein Wrapper um das State-Setting (~20 min), das Schuljahr-aus-Country für AT/DE/CH/LI braucht eine neue Methode in Country.php plus die kleine 4-Zeilen-Mapping-Tabelle (~30 min) sowie eine kleine Anpassung im Säulen-Renderer (~15 min). Tests + Edge-Cases (Schuljahres-Wechsel im August/September, Halbjahr-Ferien-Lücken) ~10 min.

🎯 Wie funktioniert das Benchmark-Prozent über alle Apps?

Jede Simulation liefert einen normalisierten Modul-Score 0–100 %, der die Leistung in einer Session widerspiegelt. Der Gesamt-Benchmark einer Schüler:in ist der Mittelwert aller ihrer abgeschlossenen Sessions — gewichtet so, dass eine häufig gespielte Sim nicht alles dominiert (max. 3 Sessions pro Modul zählen ein, danach gilt nur das beste Ergebnis).

ModulWas ergibt 100 %?Berechnung (Vorschlag)
🌍 Klimawächter Temp ≤ +1 °C, Inselüberflutung 0 %, Budget > 1000, Bevölkerung 100 % (tempScore + inselScore + budgetScore + popScore) / 4
🚁 Heli Alle Wegpunkte ohne Fehlversuch, Audio durch planCorrect/planTotal × (1 − planAttempts/15)
🚌 Busfahrt Quiz Erste-Wahl-Quote 100 %, Distanz-Abweichung < 30 km Ø 0.7×quizFirstTryRate + 0.3×(1 − distMean/200)
🍽️ Weltküche Alle Gerichte abgeschlossen, <3 Fehlklicks pro Zutat completedDishes/totalDishes × (1 − mistakes/maxMistakes)
🌾 Farmer Erfolgsrate 100 %, Jahr ≥ 20 erreicht, CO₂ niedrig 0.5×successRate + 0.3×(years/20) + 0.2×(1 − co2Norm)
🪐 Sonnensystem Alle 20 Aufgaben gelöst, möglichst Erste-Wahl completed/total × (1 − attempts/maxAttempts)
🏛️ EU-Werkstatt Alle 4 Fälle korrekt, Mülleimer leer firstTryHits/totalSteps × (1 − muelleimer/totalAttempts)
⚡ Energiemanager Alle 8 Blöcke ohne Defizit, alle 6 Sets durch perfectBlocks/totalBlocks × setIndex/setTotal
🌊 Fluss Biodiv ≥ 80, Economy ≥ 60, Flood < 20, Population stabil (biodiv + economy + (100-flood) + popStable) / 4
✈️ Fluggesellschaft Alle Aufträge gewonnen, Quiz Erste-Wahl 100 %, hohe Marge 0.5×wonRate + 0.3×quizFirstTry + 0.2×marginScore
📦 Logistik ≥80 % Aufträge pünktlich abgeschlossen, Endbilanz positiv 0.7×onTimeRate + 0.3×profitNorm
📅 Entscheidungstag Tag-Ziel erreicht, CO₂/kWh-Limit eingehalten noch zu definieren

Wichtig: der Prozentwert ist nicht eine Note — er ist eine Orientierung. Beim Klick auf „Detail" sieht die Lehrperson, woraus sich die Zahl zusammensetzt (welches Modul, welche Dimension hat ihn nach unten oder oben gezogen). Schüler:innen sehen den eigenen Wert nicht direkt — das verhindert Wettkampfdruck. Die Lehrperson kann pro Klasse entscheiden, ob sie ihn teilen möchte.

Ebene 2 · Filter & Sortierung
Alle 25 Jetzt aktiv 4 Heute aktiv 9 Heute nichts 12 Brauchen Hilfe 0 Modul: Sortierung:
Ebene 3 · Klassenliste (Mockup mit Beispieldaten)
🟢
🐬
Lenchen
🌍 Klimawächter Jahr 12 von 75 ⏱ aktiv vor 3 s · Sitzung 14 min
CO₂
425 ppm
280
600
ΔTemp
+0,4 °C
0
+3°
Budget
480 Mio
0
1000
Bevölkerung
98 %
0
100
🟢
🐝
Franz
🚁 Heli-Navigation M2 „Bergrettung Bezau" · Wegpunkt 3/6 ⏱ aktiv vor 2 s · Sitzung 8 min ★★★☆☆
Wegpunkte
3/6
0
6
Treffer-Quote
3/5 · 60 %
0
100
Fehlversuche
2
0
15
Phase
Plan
Audio
Flug
🟢
🦫
Teresa
🍽️ Weltküche Moussaka · Zutat 4/15 · Lamm gesucht ⏱ aktiv vor 1 s · Sitzung 6 min
Gerichte fertig
3/8
0
8
Score
540
0
1600
Fehlklicks (Ø/Zutat)
7 · Ø 2,3
0
5
Abzeichen
2/10
0
10
🆘
🐉
Lukas
🚁 Heli-Navigation M1 „St. Anton" · Wegpunkt 2/4 ⏱ aktiv vor 1 s · 14 Fehlversuche · Pilot bald übernimmt
Fehlversuche
14 / 15
0
15
Treffer-Quote
1/4 · 25 %
0
100
Sitzungsdauer
22 min
0
40 min
Letzter Treffer
vor 18 min
jetzt
30+
🟡
🦊
Marie
🍽️ Weltküche Pizza erfolgreich abgeschlossen ⏱ letzter Heartbeat vor 12 min ★★★★★
🟡
🐢
Hannah
🚌 Busfahrt Tour 3 abgeschlossen · 12 Städte, Ø 47 km Abweichung ⏱ letzter Heartbeat vor 1 h 12 min ★★★★☆
🐧
bubi
heute noch nicht eingeloggt letzter Login: gestern 14:30 · Heli M1 abgebrochen
🐺
Jonas
heute noch nicht eingeloggt letzter Login: vor 3 Tagen
?
Sabine
noch nie eingeloggt Konto angelegt vor 5 Tagen
Ebene 4 · Detail-Drill-Down („Live anschauen →")

Klick auf „Live anschauen →" öffnet einen Vollbild-Spectator-Modus, in dem die Lehrperson die Sim aus Schüler-Perspektive mit-sieht (heute schon teilweise via ?view=teacher). Plus: rechts daneben ein Daten-Panel mit den Modul-spezifischen Live-Werten der API.

# Detail-View für Lenchen · 🌍 Klimawächter · Jahr 12/75 Modul-Live-State Tageshistorie heute ───────────────── ───────────────────── CO₂ 425 ppm 08:42 → Lenchen startet Klima L1 ΔTemp +0,4 °C 08:46 → erste Maßnahme gekauft: Solaranlage Budget 480 Mio 09:01 → +10 Jahre, Budget 510 Mio Bevölkerung 98 % 09:08 → Sturmflut-Ereignis (akzeptiert) Überflutet 4 % 09:14 → Deich gebaut Zone B Status stabil 09:15 → JETZT (live) Schnellaktionen - Tempo-Sperre [⏸ pausieren] - Auftrag wechseln [Modul ▾] - Hinweis senden [✉ Text] Was Lenchen sieht (Spectator): ╔═══════════════════════════════════════╗ ║ [Live-Karte der Insel · 2D] ║ ║ ║ ║ ⚡ Wind, ☀ Solar, 🌊 Deich ║ ║ ║ ║ Status-Leiste mit Mini-Graphen ║ ╚═══════════════════════════════════════╝

Entwurf · liegt unter .dontDeploy/entwurfswerkzeug/live-konzept.html · Stand 2026-06-10 · GeoGraSim/Atlas