Zum Inhalt springen

Schulduell

Aus MOOCsWiki Staging
Version vom 27. April 2026, 10:57 Uhr von oldwiki>Glanz
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)






  1. Beim „Schulduell“ spielen deutschsprachige Schüler:innen rund um den Globus in Echtzeit gegeneinander.
  2. Jede Partie besteht aus zwei Spieler:innen (Duell).
  3. Ein zentraler Spielserver verwaltet bis zu 15 parallele Duelle oder mehr.
  4. Die Spieler:innen verbinden sich über eine Domain (z. B. ‘’quiz.schulduell.de’’) und spielen im Browser.
  5. Die Plattform unterstützt Fächerwahl, Schwierigkeitsgrad, verschiedene Quizzes und einen Schnelligkeitsmodus mit 10‑Sekunden‑Timer.
  6. Zusatzquizze lassen sich einfach integrieren, indem man eine JSON‑Datei in einen Quiz‑Ordner kopiert.
  7. Ein Hitlisten‑/Ranking‑System zeigt Best Scores und Highscores.
  8. Alle Abläufe sind mehrsprachig erweiterbar (Startversion auf Deutsch).



  1. **Zentrales Server-Back‑End**
 - Eine dedizierte Webanwendung (z. B. Node.js mit Express + Socket.IO oder Python mit FastAPI + WebSockets) läuft auf dem Server der Domain.  
 - Der Server hält alle Spielzustände, Räume, Timer und Ranglisten im Speicher und persistiert Daten in einer Datenbank (z. B. PostgreSQL oder MongoDB).  
 - Jeder Spielraum (Room) hat eine eindeutige ID, hält zwei Spielerplätze und speichert Quiz, aktuelle Frage, Punkte und Timer.  
 - Ein Realtime‑Layer (WebSockets) sendet Fragen, Antworten und Punktestände in Millisekunden an die Browser, um Schnelligkeit zu gewährleisten.  
  1. **Front‑End**
 - HTML5, CSS3 und JavaScript (React/Vue/Vanilla) liefern eine responsive Web-App für Smartphones und Desktops.  
 - Die Web-App enthält Seiten für Login, Raumwahl, Quizauswahl, Spiel, Ranking und Administration.  
 - Das Front‑End kommuniziert per WebSocket (z. B. Socket.IO) mit dem Server, um Latenzen gering zu halten.  
  1. **Quizdaten als Dateien**
 - Alle Quizsets liegen als JSON‑Dateien in einem Ordner (`quizzes/`).  
 - Beim Start liest der Server alle JSON‑Dateien, indexiert sie nach Fach, Schwierigkeitsgrad und Titel.  
 - Lehrkräfte und Entwickler:innen können neue Quizsets ergänzen, indem sie eine neue Datei ablegen – ohne den Code zu ändern.  
  1. **Optionale Hardware (ESP32)**
 - Für den Arduino‑Bezug kann ein ESP32 als Anzeige‑ oder Effektgerät dienen (z. B. LED-Streifen, Buzzer, LCD), der über WLAN mit dem Server verbunden ist.  
 - Das ESP32 zeigt den aktuellen Spitzenreiter an oder signalisiert Rundenbeginn/-ende über LEDs und Ton.



  1. **Domain**
 - Registrieren Sie eine einprägsame Domain (z. B. quiz.schulduell.de).  
 - Konfigurieren Sie DNS-Einträge (A/AAAA) auf den Hosting-Server.  
  1. **Server**
 - Mieten Sie einen virtuellen Server oder nutzen Sie einen Cloud-Dienst (z. B. Hetzner, DigitalOcean, AWS EC2) mit Linux.  
 - Mindestausstattung: 2 CPU‑Kerne, 4 GB RAM, SSD‑Speicher; skaliert nach erwarteter Nutzerzahl.  
 - Installieren Sie eine Runtime (Node.js LTS oder Python 3.10+).  
 - Installieren Sie einen Webserver/Proxy (z. B. Nginx) vor Ihrer Anwendung für HTTPS‑Terminating und statische Dateien.  
  1. **Sicherheit**
 - Aktivieren Sie HTTPS mit TLS (z. B. Let’s Encrypt).  
 - Verwenden Sie sichere HTTP‑Header (Content‑Security‑Policy, X-Frame-Options, Strict‑Transport‑Security).  
 - Sanitisieren Sie Benutzereingaben gegen XSS, CSRF und Injection.  
 - Speichern Sie keine personenbezogenen Daten (nur Pseudonyme), um datenschutzkonform zu bleiben (DSGVO).  
 - Implementieren Sie Ratelimits, um DDoS‑Angriffe zu erschweren.  
  1. **Skalierbarkeit**
 - Für bis zu 15 Duelle reicht ein einzelner Server.  
 - Bei hoher Last können Sie horizontale Skalierung (mehrere Instanzen) verwenden; Socket.IO unterstützt Sticky Sessions via Redis.  
 - Nutzen Sie Docker/Kubernetes für Portabilität und Skalierung in der Cloud.



  1. Die Spieler:innen öffnen die Domain im Browser.
  2. Sie geben einen Spitznamen ein (Option: Authentifizierung via OAuth/Schulzugang).
  3. Sie wählen einen Raum oder erstellen einen neuen Raum (maximal zwei Personen pro Raum).
  4. Jedes Duell erhält eine eindeutige URL (z. B. quiz.schulduell.de/room/abc123), die sich über QR‑Code teilen lässt.
  1. Sobald beide Spieler:innen im Raum sind, sehen sie:
 - Fachwahl (z. B. Mathematik, Geografie, Medienbildung).  
 - Schwierigkeitsgrad (leicht/mittel/schwer).  
 - Verfügbare Quiztitel (aus dem Ordner `quizzes/`, z. B. Multiplikation, Hauptstädte).  
  1. Ein:e Spieler:in wählt Quiz und bestätigt. (Optional: Lehrkraft wählt Quiz zentral für alle Räume.)
  2. Der Server lädt die zugehörige JSON‑Datei und startet das Spiel.
  1. Das Spiel besteht aus 10 Fragen; jede Frage bietet 4 Antwortmöglichkeiten.
  2. Der Server startet für jede Frage einen 10‑Sekunden‑Timer.
  3. Beide Spieler:innen sehen die Frage und Antworten gleichzeitig.
  4. Sie tippen ihre Antwort; die Nachricht enthält Spieler-ID, Raum-ID und Antwort-ID.
  5. Der Server bewertet:
 - War die Antwort innerhalb der Zeit?  
 - Ist sie richtig?  
 - War sie die schnellste richtige Antwort?  
  1. Der schnellste korrekte Spieler erhält einen Punkt (Fehler/zu spät = 0 Punkte).
  2. Nach Ablauf oder nach der ersten richtigen Antwort schließt der Server die Frage, sendet die Lösung und startet die nächste.
  3. Nach der 10. Frage sendet der Server das Duell-Endergebnis an beide.
  1. Der Server speichert jedes Duell: Raum-ID, Datum/Zeit, Quiz, Schwierigkeit, Spieler-Namen, Punkte und durchschnittliche Antwortzeit.
  2. Eine Hitliste sortiert Ergebnisse nach Siegen, Punkten, Best Score (maximale Punktzahl), Reaktionszeit oder Mischung.
  3. Rankings lassen sich nach Fach/Schwierigkeitsgrad filtern.
  4. Die Best Scores können anonymisiert (Spitzname) angezeigt werden.
  5. Eine separate Rangliste für Schulklassen oder Regionen ist möglich.
  1. Lehrkräfte/Moderator:innen haben Zugriff auf ein Dashboard mit:
 - Übersicht aller Räume (bereit, im Spiel, fertig).  
 - Aktuelle Frage und Punktestand pro Raum.  
 - Möglichkeit, Quizzes zentral zu starten, zu beenden oder Räume zu schließen.  
 - Einsicht in Hitliste und Best Scores.  
  1. Administrator:innen können Quizdateien hochladen/löschen, Räume sperren, Spieler melden/entfernen.
  2. Option: Export der Ergebnisse als CSV/JSON für pädagogische Auswertung.



```json {

 "id": "multiplikation_leicht",
 "subject": "Mathematik",
 "difficulty": "leicht",
 "title": "Multiplikation bis 10",
 "questions": [
   {
     "question": "Was ist 2 x 3?",
     "answers": ["4", "5", "6", "8"],
     "correct": 2,
     "explanation": "2 mal 3 ergibt 6."    // optional
   },
   ...
 ]

}