Als HTL-Lehrer betreue ich jedes Jahr Diplomarbeitsteams. Excel-Listen und verstreute Protokolle haben wir durch eine eigene Web-App ersetzt: den DA-Tracker. Hier ein Überblick über Funktionen und Technik.
Was die App kann
- Login ohne Mailserver: Die Lehrkraft legt ein Team an und bekommt einen Einladungslink oder eine QR-Karte. Schüler:innen wählen damit Avatar und Passwort.
- Sprints statt Stichtage: Termine aus dem Stundenplan (inklusive österreichischer Ferien), dann Planen, Umsetzen im Kanban-Board und Bewerten.
- Soll-Ist-Vergleich: Fortschritt, geplante gegen tatsächliche Stunden, Kapazität und Schätzgenauigkeit.
- Arbeitsprotokoll mit Fotos direkt vom Handy und ein Begleitprotokoll als PDF mit Unterschriftszeilen.
- Lehrer-Dashboard, sortiert nach Handlungsbedarf.
- Und bewusst etwas Spaß: Avatare, Konfetti, Serien – aber keine Rankings.
Technik
- SvelteKit (Node) mit PostgreSQL 17, Datenbankänderungen als nummerierte SQL-Migrationen.
- Betrieb in einem unprivilegierten Debian-LXC unter Proxmox mit rootful Podman und podman-compose. Rootless Podman scheitert im unprivilegierten LXC an fehlenden Sub-UIDs.
- Drei Container: App, Datenbank und ein Backup-Container, der täglich DB-Dump und Uploads sichert und 21 Tage aufbewahrt.
Deployment mit GitHub Actions
git push ──► GitHub Actions baut das Image und legt es in die GitHub Container Registry
──► self-hosted Runner im LXC: podman-compose pull && up -d ──► Healthcheck
Der Runner läuft als eigener Benutzer und darf per sudo ausschließlich podman und podman-compose ausführen. So bleibt ein kompromittierter Workflow im Container eingesperrt.
Zwei Details, die Zeit gekostet haben
- SvelteKit prüft bei Formularen die Herkunft (CSRF-Schutz). Hinter einem Reverse Proxy muss
ORIGINexakt der öffentlichen Adresse entsprechen, sonst schlägt jedes Formular fehl. - Für Foto-Uploads braucht der Reverse Proxy ein höheres Upload-Limit (
client_max_body_size).
Wie es weitergeht
Für Phase 2 stehen Beurteilungsraster mit Peer-Einschätzung, Betreuungsprotokolle mit Lesebestätigung, Passkeys und ein Export nach Excel auf der Liste.
