Arbeit

Zorzal Morazán

Bildung
.NET
React

Eine Anmelde- und Anwesenheitsplattform für eine Universität mit mehreren Standorten: Studierende melden sich für Sitzungen an und checken ein, auch ohne Verbindung, während das Personal Listen, Rollen und Benachrichtigungen verwaltet.

Die Sitzungsseite der Admin-Konsole: ein Formular zum Planen einer Sitzung und darunter die Liste der Sitzungen mit Anmeldezahlen.

Projektübersicht

Zorzal Morazán ist eine Anmelde- und Anwesenheitsplattform für eine Universität mit mehreren Standorten. Das Personal plant Sitzungen, die Studierenden melden sich an und checken ein, und die Informationen, die früher in Tabellen lagen, fließen nun in Google Sheets hinein und heraus. Ich habe sie von Anfang bis Ende entworfen und gebaut. Die Oberfläche ist auf Spanisch.

Was sie kann

  • Studierendenkonten: Anmeldung mit E-Mail und Passwort, mit Google oder per Magic Link, wobei der Abschlussstatus jedes Studierenden beim Konto geführt wird.
  • Sitzungen und Check-in: Das Personal plant Sitzungen, und die Studierenden melden sich an. Der Check-in funktioniert auf dem Smartphone auch ohne Verbindung, mit einem Zugangscode, der zu jeder Sitzung gehört.
  • Admin-Konsole: drei Rollen (Super-Admin, System-Admin und Bereichs-Admin), jeweils auf einen Standort und einen Fachbereich beschränkt, mit Audit-Protokoll, Warteschlange für Hintergrundaufgaben und Einstellungen.
  • Google Drive und Sheets: Listen werden importiert und exportiert, Ordner durchsucht, und die Plattform lernt Entsprechungen zwischen Schreibweisen und Spaltenüberschriften.
  • Benachrichtigungen: E-Mail und Telegram, mit Adressprüfung, einem Versandprotokoll und einem Tageskontingent.
  • Demo-Standorte: angelegte Beispielstandorte für Vorführungen, die sich auf Wunsch zurücksetzen lassen.

Die Startseite der Admin-Konsole mit den Bereichen, die ein Super-Admin sieht.

Check-in, der eine schlechte Verbindung übersteht

Der Check-in findet am Veranstaltungsort statt, auf dem Smartphone einer freiwilligen Helferin oder eines Helfers, wo der Empfang nicht immer gut ist. Beim Öffnen der Seite mit dem Zugangscode der Sitzung wird die Liste der angemeldeten Studierenden einmal geladen; danach wird jeder Check-in sofort auf dem Gerät gespeichert und gesendet, sobald das Netz es erlaubt, in der richtigen Reihenfolge und ohne Duplikate. Da die Liste bereits auf dem Smartphone liegt, wird abgewiesen, wer nicht angemeldet ist, und zwar direkt an der Tür.

Der Bildschirm zur Eingabe des Anwesenheitscodes auf einem Smartphone.

Wie sie gebaut ist

  • API: ASP.NET Core auf .NET 10 mit EF Core und PostgreSQL. Das Domänenprojekt hängt weder von EF noch von ASP.NET ab, und die Controller bleiben schlank.
  • Web: eine React-19-Single-Page-App mit Vite, TypeScript, Tailwind CSS v4 und TanStack Query, bereitgestellt auf Vercel.
  • Datenbank: ausschließlich ergänzende Migrationen, angewendet mit dbmate, plus Referenzdaten.
  • Ausfallsicherheit: Die API läuft in Docker mit einem Streaming-Replikat als Rückfall, und die Oberfläche wechselt in einen Nur-Lese-Modus, wenn das Replikat antwortet.
  • Tests: Integrationstests laufen gegen eine echte, migrierte PostgreSQL in einem Container, und jede Seite und jeder Zustand der App lässt sich in Storybook mit simulierten Daten durchsehen.