# Login Trainer Trainingsplattform zum Üben sicherer Logins, Messung von Tippgeschwindigkeit und Monitoring durch Lehrkräfte. ## Routenübersicht ### Öffentliche Seiten - `/` – Startseite mit CTA zum Login/Registrieren. - `/login` – Login-Formular mit Tippgeschwindigkeits-Tracking. - `/login/uppercase` – Hinweisseite, falls Benutzername Großbuchstaben enthält. - `/login/success` – Auswertung nach erfolgreichem Login. - `/register` – Registrierung neuer Konten. ### Teacher-Bereich (hinter AuthGate) - `/teacher` – Übersichts-Dashboard mit Kacheln zu allen Modulen. (*CSS-Problem, ist noch eine List*) - `/teacher/logs` – Tabellenansicht sämtlicher Login-Versuche. - `/teacher/stats` – Aggregierte Statistiken. - `/leaderboard` – Übersicht der Klassen-Highscores. - `/teacher/violaters` – Liste der Accounts mit zu kurzen Passwörtern (inkl. Sort/Filter). - `/teacher/dbdump` – Datenbank-Dump als Download. ### API-Endpunkte - `/api/login` – Verarbeitung von Login-Versuchen. - `/api/register` – Anlage neuer Nutzer. - `/api/teacher/auth` – Prüfung des Teacher-Passworts für das AuthGate. - `/api/attempts/purge-failed` – Löschen fehlgeschlagener Versuche (geschützt via `ADMIN_PURGE_TOKEN`). - `/api/leaderboard/top-performers` - Top 3 jeder Klasse als JSON... falls mal irgendwo diese Information erscheinen soll :) ## Umgebungsvariablen | Variable | Beschreibung | | --- | --- | | `AUTH_MODE` | Authentifizierungsmodus (`local` oder `ad`). | | `NEXT_PUBLIC_AUTH_MODE` | Frontend-Flag zum Anzeigen des Modus. | | `DATABASE_URL` | Pfad zur SQLite-DB. | | `PASSWORD_POLICY_MIN_LENGTH` | Mindestlänge für Passwörter (wird für Statistiken & Policy-Checks verwendet). | | `NEXT_PUBLIC_SCHOOLNAME` | Anzeige des Schulnamens auf der Login-Seite. | | `DOPING_THRESHOLD_MS_PER_CHAR` | Grenzwert für „Doping“-Hinweise pro Zeichen. | | `NEXT_PUBLIC_MIN_PASSWORD_ALERT_MESSAGE` | Text für Hinweis zu kurzen Passwörtern. | | `LDAP_URL` / `LDAP_BASE_DN` / `LDAP_BIND_DN` / `LDAP_BIND_PW` / `LDAP_DOMAIN_PREFIX` | LDAP/AD-Konfiguration (nur bei `AUTH_MODE=ad`). | | `TEACHER_LOGS_PASSWORD` | Passwort für das Teacher-AuthGate. | | `ADMIN_PURGE_TOKEN` | Schutz-Token für Purge-Endpunkt. | | `RUN_MIGRATIONS` | Steuert automatisches Ausführen von Prisma-Migrationen im Docker-Setup. | Weitere Beispielwerte siehe `.env.example`. Nach Änderungen an Prisma-Schema immer `npx prisma migrate deploy` und `npx prisma generate` ausführen, damit der Client aktuell ist.