<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Schulduell</id>
	<title>Schulduell - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Schulduell"/>
	<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Schulduell&amp;action=history"/>
	<updated>2026-06-12T16:33:35Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in MOOCsWiki Staging</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://staging.moocwiki.org/index.php?title=Schulduell&amp;diff=27029&amp;oldid=prev</id>
		<title>oldwiki&gt;Glanz am 27. April 2026 um 08:57 Uhr</title>
		<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Schulduell&amp;diff=27029&amp;oldid=prev"/>
		<updated>2026-04-27T08:57:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Schulduell.png|1000px|rahmenlos|zentriert|link=https://editor.p5js.org/bobjoblin/full/-3oKmcZ7Z]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BK}}&lt;br /&gt;
= [[Professionelles Schulduell: Online-Quiz-Plattform für deutschsprachige Schüler:innen weltweit]] =&lt;br /&gt;
&lt;br /&gt;
{{BK}}&lt;br /&gt;
= [[Ziel und Überblick]] =&lt;br /&gt;
&lt;br /&gt;
# Beim „[[Schulduell]]“ spielen deutschsprachige Schüler:innen rund um den Globus in Echtzeit gegeneinander.&lt;br /&gt;
# Jede Partie besteht aus zwei Spieler:innen (Duell).&lt;br /&gt;
# Ein zentraler Spielserver verwaltet bis zu 15 parallele Duelle oder mehr.&lt;br /&gt;
# Die Spieler:innen verbinden sich über eine Domain (z. B. ‘’quiz.schulduell.de’’) und spielen im Browser.&lt;br /&gt;
# Die Plattform unterstützt Fächerwahl, Schwierigkeitsgrad, verschiedene Quizzes und einen Schnelligkeitsmodus mit 10‑Sekunden‑Timer.&lt;br /&gt;
# Zusatzquizze lassen sich einfach integrieren, indem man eine JSON‑Datei in einen Quiz‑Ordner kopiert.&lt;br /&gt;
# Ein Hitlisten‑/Ranking‑System zeigt Best Scores und Highscores.&lt;br /&gt;
# Alle Abläufe sind mehrsprachig erweiterbar (Startversion auf Deutsch).&lt;br /&gt;
&lt;br /&gt;
{{BK}}&lt;br /&gt;
= [[Architekturübersicht]] =&lt;br /&gt;
&lt;br /&gt;
# **Zentrales Server-Back‑End**  &lt;br /&gt;
  - Eine dedizierte Webanwendung (z. B. Node.js mit Express + Socket.IO oder Python mit FastAPI + WebSockets) läuft auf dem Server der Domain.  &lt;br /&gt;
  - 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).  &lt;br /&gt;
  - Jeder Spielraum (Room) hat eine eindeutige ID, hält zwei Spielerplätze und speichert Quiz, aktuelle Frage, Punkte und Timer.  &lt;br /&gt;
  - Ein Realtime‑Layer (WebSockets) sendet Fragen, Antworten und Punktestände in Millisekunden an die Browser, um Schnelligkeit zu gewährleisten.  &lt;br /&gt;
&lt;br /&gt;
# **Front‑End**  &lt;br /&gt;
  - HTML5, CSS3 und JavaScript (React/Vue/Vanilla) liefern eine responsive Web-App für Smartphones und Desktops.  &lt;br /&gt;
  - Die Web-App enthält Seiten für Login, Raumwahl, Quizauswahl, Spiel, Ranking und Administration.  &lt;br /&gt;
  - Das Front‑End kommuniziert per WebSocket (z. B. Socket.IO) mit dem Server, um Latenzen gering zu halten.  &lt;br /&gt;
&lt;br /&gt;
# **Quizdaten als Dateien**  &lt;br /&gt;
  - Alle Quizsets liegen als JSON‑Dateien in einem Ordner (`quizzes/`).  &lt;br /&gt;
  - Beim Start liest der Server alle JSON‑Dateien, indexiert sie nach Fach, Schwierigkeitsgrad und Titel.  &lt;br /&gt;
  - Lehrkräfte und Entwickler:innen können neue Quizsets ergänzen, indem sie eine neue Datei ablegen – ohne den Code zu ändern.  &lt;br /&gt;
&lt;br /&gt;
# **Optionale Hardware (ESP32)**  &lt;br /&gt;
  - 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.  &lt;br /&gt;
  - Das ESP32 zeigt den aktuellen Spitzenreiter an oder signalisiert Rundenbeginn/-ende über LEDs und Ton.&lt;br /&gt;
&lt;br /&gt;
{{BK}}&lt;br /&gt;
= [[Domain, Server und Hosting]] =&lt;br /&gt;
&lt;br /&gt;
# **Domain**  &lt;br /&gt;
  - Registrieren Sie eine einprägsame Domain (z. B. quiz.schulduell.de).  &lt;br /&gt;
  - Konfigurieren Sie DNS-Einträge (A/AAAA) auf den Hosting-Server.  &lt;br /&gt;
&lt;br /&gt;
# **Server**  &lt;br /&gt;
  - Mieten Sie einen virtuellen Server oder nutzen Sie einen Cloud-Dienst (z. B. Hetzner, DigitalOcean, AWS EC2) mit Linux.  &lt;br /&gt;
  - Mindestausstattung: 2 CPU‑Kerne, 4 GB RAM, SSD‑Speicher; skaliert nach erwarteter Nutzerzahl.  &lt;br /&gt;
  - Installieren Sie eine Runtime (Node.js LTS oder Python 3.10+).  &lt;br /&gt;
  - Installieren Sie einen Webserver/Proxy (z. B. Nginx) vor Ihrer Anwendung für HTTPS‑Terminating und statische Dateien.  &lt;br /&gt;
&lt;br /&gt;
# **Sicherheit**  &lt;br /&gt;
  - Aktivieren Sie HTTPS mit TLS (z. B. Let’s Encrypt).  &lt;br /&gt;
  - Verwenden Sie sichere HTTP‑Header (Content‑Security‑Policy, X-Frame-Options, Strict‑Transport‑Security).  &lt;br /&gt;
  - Sanitisieren Sie Benutzereingaben gegen XSS, CSRF und Injection.  &lt;br /&gt;
  - Speichern Sie keine personenbezogenen Daten (nur Pseudonyme), um datenschutzkonform zu bleiben (DSGVO).  &lt;br /&gt;
  - Implementieren Sie Ratelimits, um DDoS‑Angriffe zu erschweren.  &lt;br /&gt;
&lt;br /&gt;
# **Skalierbarkeit**  &lt;br /&gt;
  - Für bis zu 15 Duelle reicht ein einzelner Server.  &lt;br /&gt;
  - Bei hoher Last können Sie horizontale Skalierung (mehrere Instanzen) verwenden; Socket.IO unterstützt Sticky Sessions via Redis.  &lt;br /&gt;
  - Nutzen Sie Docker/Kubernetes für Portabilität und Skalierung in der Cloud.&lt;br /&gt;
&lt;br /&gt;
{{BK}}&lt;br /&gt;
= [[Benutzerfluss und Spielablauf]] =&lt;br /&gt;
&lt;br /&gt;
== [[1. Einstieg und Login]] ==&lt;br /&gt;
&lt;br /&gt;
# Die Spieler:innen öffnen die Domain im Browser.  &lt;br /&gt;
# Sie geben einen Spitznamen ein (Option: Authentifizierung via OAuth/Schulzugang).  &lt;br /&gt;
# Sie wählen einen Raum oder erstellen einen neuen Raum (maximal zwei Personen pro Raum).  &lt;br /&gt;
# Jedes Duell erhält eine eindeutige URL (z. B. quiz.schulduell.de/room/abc123), die sich über QR‑Code teilen lässt.  &lt;br /&gt;
&lt;br /&gt;
== [[2. Quizauswahl]] ==&lt;br /&gt;
&lt;br /&gt;
# Sobald beide Spieler:innen im Raum sind, sehen sie:  &lt;br /&gt;
  - Fachwahl (z. B. [[Mathematik]], [[Geografie]], [[Medienbildung]]).  &lt;br /&gt;
  - Schwierigkeitsgrad (leicht/mittel/schwer).  &lt;br /&gt;
  - Verfügbare Quiztitel (aus dem Ordner `quizzes/`, z. B. Multiplikation, Hauptstädte).  &lt;br /&gt;
# Ein:e Spieler:in wählt Quiz und bestätigt. (Optional: Lehrkraft wählt Quiz zentral für alle Räume.)  &lt;br /&gt;
# Der Server lädt die zugehörige JSON‑Datei und startet das Spiel.&lt;br /&gt;
&lt;br /&gt;
== [[3. Spielphase]] ==&lt;br /&gt;
&lt;br /&gt;
# Das Spiel besteht aus 10 Fragen; jede Frage bietet 4 Antwortmöglichkeiten.  &lt;br /&gt;
# Der Server startet für jede Frage einen 10‑Sekunden‑Timer.  &lt;br /&gt;
# Beide Spieler:innen sehen die Frage und Antworten gleichzeitig.  &lt;br /&gt;
# Sie tippen ihre Antwort; die Nachricht enthält Spieler-ID, Raum-ID und Antwort-ID.  &lt;br /&gt;
# Der Server bewertet:  &lt;br /&gt;
  - War die Antwort innerhalb der Zeit?  &lt;br /&gt;
  - Ist sie richtig?  &lt;br /&gt;
  - War sie die schnellste richtige Antwort?  &lt;br /&gt;
# Der schnellste korrekte Spieler erhält einen Punkt (Fehler/zu spät = 0 Punkte).  &lt;br /&gt;
# Nach Ablauf oder nach der ersten richtigen Antwort schließt der Server die Frage, sendet die Lösung und startet die nächste.  &lt;br /&gt;
# Nach der 10. Frage sendet der Server das Duell-Endergebnis an beide.&lt;br /&gt;
&lt;br /&gt;
== [[4. Ranking/Hitliste]] ==&lt;br /&gt;
&lt;br /&gt;
# Der Server speichert jedes Duell: Raum-ID, Datum/Zeit, Quiz, Schwierigkeit, Spieler-Namen, Punkte und durchschnittliche Antwortzeit.  &lt;br /&gt;
# Eine Hitliste sortiert Ergebnisse nach Siegen, Punkten, Best Score (maximale Punktzahl), Reaktionszeit oder Mischung.  &lt;br /&gt;
# Rankings lassen sich nach Fach/Schwierigkeitsgrad filtern.  &lt;br /&gt;
# Die Best Scores können anonymisiert (Spitzname) angezeigt werden.  &lt;br /&gt;
# Eine separate Rangliste für Schulklassen oder Regionen ist möglich.  &lt;br /&gt;
&lt;br /&gt;
== [[5. Administration und Moderation]] ==&lt;br /&gt;
&lt;br /&gt;
# Lehrkräfte/Moderator:innen haben Zugriff auf ein Dashboard mit:  &lt;br /&gt;
  - Übersicht aller Räume (bereit, im Spiel, fertig).  &lt;br /&gt;
  - Aktuelle Frage und Punktestand pro Raum.  &lt;br /&gt;
  - Möglichkeit, Quizzes zentral zu starten, zu beenden oder Räume zu schließen.  &lt;br /&gt;
  - Einsicht in Hitliste und Best Scores.  &lt;br /&gt;
# Administrator:innen können Quizdateien hochladen/löschen, Räume sperren, Spieler melden/entfernen.  &lt;br /&gt;
# Option: Export der Ergebnisse als CSV/JSON für pädagogische Auswertung.&lt;br /&gt;
&lt;br /&gt;
{{BK}}&lt;br /&gt;
= [[Datenmodell und Ordnerstruktur]] =&lt;br /&gt;
&lt;br /&gt;
== [[Quizdatei-Format (JSON)]] ==&lt;br /&gt;
&lt;br /&gt;
```json&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;multiplikation_leicht&amp;quot;,&lt;br /&gt;
  &amp;quot;subject&amp;quot;: &amp;quot;Mathematik&amp;quot;,&lt;br /&gt;
  &amp;quot;difficulty&amp;quot;: &amp;quot;leicht&amp;quot;,&lt;br /&gt;
  &amp;quot;title&amp;quot;: &amp;quot;Multiplikation bis 10&amp;quot;,&lt;br /&gt;
  &amp;quot;questions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;question&amp;quot;: &amp;quot;Was ist 2 x 3?&amp;quot;,&lt;br /&gt;
      &amp;quot;answers&amp;quot;: [&amp;quot;4&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;8&amp;quot;],&lt;br /&gt;
      &amp;quot;correct&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;explanation&amp;quot;: &amp;quot;2 mal 3 ergibt 6.&amp;quot;    // optional&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>oldwiki&gt;Glanz</name></author>
	</entry>
</feed>