48 lines
2.5 KiB
Markdown
48 lines
2.5 KiB
Markdown
# 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.
|