尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Quiz-Plattform für den Studienkurs: Quiz erstellen und live zusammen spielen – ein Host zeigt Fragen, QR-Code und PIN auf dem großen Bildschirm, alle anderen spielen am Handy mit.
Browser ──HTTP──▶ Vercel (statische Seiten + Express-API als Serverless-Funktion)
▲ │
│ ▼
└──Realtime-Signal── Supabase (Postgres + Realtime)
public/ aus und betreibt die API (api/index.js → src/app.js).quiz, nicht über die Supabase-REST-API erreichbar; die API verbindet sich mit der eigenen Rolle quiz_app).update-Signal in den Kanal game:<PIN>. Host und Spieler laden daraufhin ihren Stand über die API neu. Ohne Realtime fragen die Seiten alle 2 Sekunden nach (Polling).Voraussetzung: Node.js 22+ und eine Postgres-Datenbank.
npm install
psql "$ADMIN_DB_URL" -f supabase/migrations/001_init.sql -f supabase/migrations/002_app_role.sql
psql "$ADMIN_DB_URL" -c "ALTER ROLE quiz_app PASSWORD 'local'"
cp .env.example .env # DATABASE_URL eintragen
npm run dev # http://localhost:3000
Ohne SUPABASE_URL/SUPABASE_PUBLISHABLE_KEY läuft alles per Polling.
supabase/migrations/ im Supabase-Projekt ausführen und ein Passwort für quiz_app setzen.DATABASE_URL – Pooler-Verbindung (Transaction Mode, Port 6543) mit Benutzer quiz_app.<projekt-ref>SUPABASE_URL – z. B. https://<projekt-ref>.supabase.coSUPABASE_PUBLISHABLE_KEY – Publishable Key des Projekts (öffentlich, nicht geheim)master wird automatisch deployt. /api/health prüft die Datenbankverbindung./) – nur zum Erstellen/Hosten und Punktesammeln nötig/dashboard: PIN eingeben, Kennzahlen, zuletzt gespielt), Quiz (/quizzes: eigene Quiz verwalten und starten), Bestenliste (/leaderboard) und Profil (/profile: Statistik, Erfolge, Ergebnisse, Abmelden). Sie steht nicht im Editor und nicht im Spiel selbst (Host-Bildschirm, Handy-Ansicht)./edit): Titel, Fach, Fragen mit 2–4 Antworten, richtige Antwort, Zeitlimit/host?pin=…) mit QR-Code, PIN und Teilnehmerliste/play) – als Gast mit Namen oder eingeloggt mit ihrem Nutzernamenapi/index.js Einstiegspunkt für Vercel
server.js Lokaler Entwicklungsserver (API + statische Seiten)
src/app.js Express-App mit allen API-Routen
src/db.js Postgres-Verbindung
src/auth.js Registrierung, Login, Sessions (httpOnly-Cookie, bcrypt)
src/quizzes.js Quiz erstellen/bearbeiten/löschen
src/game.js Live-Spiele: PIN, QR-Code, Spielablauf, Gäste, Punkte
src/config.js Spielregeln (Mindestteilnehmer für die Wertung)
src/achievements.js Erfolge: Definitionen, Vergabe am Spielende, API
src/leaderboard.js Bestenliste (gesamt und je Fach)
src/results.js Statistik und gespeicherte Ergebnisse eingeloggter Spieler
public/ Frontend (reines HTML/CSS/JS, kein Build-Schritt); js/common.js enthält u. a. die Navigation
supabase/ Datenbank-Migrationen
Die Oberfläche folgt einem weichen Verlaufs-Design mit runden Karten, Level-Anzeige und bunter Navigation. Hinter den Home-Kacheln stehen echte Daten:
POINTS_PER_LEVEL in src/config.js).Jeder Nutzer hat eine eindeutige fünfstellige ID (quiz.users.friend_code, 10000–99999, angezeigt als #12345; bei der Registrierung zufällig vergeben, Bestandsnutzer wurden per Migration 013_friends.sql nachträglich versorgt). Unter Profil → Freunde (/friends) sucht man Spieler nach Namen (Teilstück) oder ID (Anfang); Treffer erscheinen beim Tippen als Vorschläge (GET /api/friends/search). Eine Anfrage wird erst mit „Annehmen“ zur Freundschaft; hat die Person schon angefragt, entsteht die Freundschaft sofort. Offene Anfragen zeigt ein roter Zähler am Profil-Symbol der Navigation. Interagieren kann man mit Freunden bisher nur, indem man sie im Quiz-Editor zum gemeinsamen Bearbeiten einlädt – dort werden Freunde beim Tippen vorgeschlagen, und nur Freunde lassen sich einladen (Tabelle quiz.friendships).
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗