docker-fobi/docker-compose/logintrainer/README.md
Jesko Anschütz ea52d39e6c logintrainer
2025-11-04 21:35:45 +01:00

48 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.