Zum Inhalt springen

Schulprojekt · IMS Projekt 1 · In Arbeit

Zusehenden­verwaltung

Eine Web-Applikation, mit der sich G3-Schülerinnen und -Schüler für die Maturaarbeits-Präsentationen der G4 eintragen. Sie prüft die Regeln schon bei der Auswahl, damit keine Präsentation überfüllt wird. Das Projekt läuft noch, gebaut wird es in C# mit ASP.NET Core und Microsoft SQL Server.

Entwurf der Maske Präsentationen auswählen: eine Tabelle mit Thema, Datum, Uhrzeit, Raum und freien Plätzen, eine Präsentation ist gewählt, bei den anderen steht der Knopf Auswählen
Entwurf aus dem Software Design (UI-Mockup 2): Die Liste zeigt nur Präsentationen, die noch frei sind und zeitlich passen. Das ist ein Entwurf und nicht die fertige Anwendung.

Über das Projekt

Das IMS Projekt 1 ist das Semesterprojekt im dritten Jahr der IMS Basel. Es läuft nach dem Phasenmodell: Analyse, Design, Implementation, Testing und Projektabschluss. Die Aufgabe kommt vom Wirtschaftsgymnasium Basel. Dort halten jedes Jahr etwa 100 G4-Schülerinnen und -Schüler eine Präsentation über ihre Maturaarbeit, und die G3 muss bei genau zwei davon zuschauen.

Bisher trugen sich die G3 über ein Formular in Microsoft Teams ein. Das Formular stoppte niemanden, also wählten zu viele dieselbe Präsentation. Die Administration musste die Überbelegungen von Hand korrigieren und alle Betroffenen einzeln informieren. Die neue Anwendung ersetzt das Formular: Wer sich einträgt, sieht nur Präsentationen, die noch frei sind und zeitlich zu den eigenen passen.

Von mir sind die Dokumente der ersten beiden Phasen. Die Anforderungsspezifikation hält fest, was die Anwendung können muss: 39 Anforderungen mit Priorität und Abnahmekriterium, dazu Regeln, Annahmen und 14 offene Punkte, die mir beim Lesen des Lastenhefts aufgefallen sind. Das Software Design beschreibt, wie sie gebaut wird. Beide sind unter Links und Dateien als PDF verlinkt.

Stand

  • Analyse: Anforderungsspezifikation Abgegeben
  • Design: Software Design mit Architektur, Datenbank und Masken Abgegeben
  • Grundgerüst mit ASP.NET Core, Datenbankanbindung und Git Fertig
  • Oberfläche am Desktop: Anmeldung, Präsentationen auswählen, Meine Eintragungen, Administration. Noch statisch: Die Daten stehen fest im HTML, die Knöpfe tun noch nichts Fertig
  • Datenmodell: Die sechs Klassen sind geschrieben, Datenbankkontext, Migration und Tabellen folgen In Arbeit
  • Regeln, Anmeldung, CSV-Import, Eintragen, Administration, E-Mail-Versand und Listen Offen
  • Handy-Ansicht und Tests Offen

Stand: 24. Oktober 2026. Die Schule plant die Implementation bis Ende November, danach das Testing bis zum Projektabschluss am 18. Dezember 2026.

Was die Anwendung können soll

Genau zwei Präsentationen pro G3-Person, höchstens sechs Zusehende pro Präsentation und keine zwei zur gleichen Zeit. Die Auswahl zeigt nur, was zulässig ist.
Anmeldung mit E-Mail-Adresse und Passwort. Passwörter liegen nur als Hash in der Datenbank, nach fünf falschen Versuchen ist das Konto 15 Minuten gesperrt.
CSV-Import der Präsentationen und der G3-Personen. Falsche Zeilen überspringt das System mit Grund, die richtigen lädt es trotzdem.
E-Mails mit den Zugangsdaten und nach dem Eintragen eine Bestätigung mit beiden Präsentationen. Fehlgeschlagene Mails werden aufgeschrieben und lassen sich erneut senden.
Administration: die Eintragungsphase öffnen und schliessen, Eintragungen von Hand anpassen und das System für ein neues Schuljahr zurücksetzen, mit zweifacher Rückfrage.
Listen: eine Raumübersicht und eine Zuseherliste je Präsentation, zum Drucken und als CSV-Datei.
Entwurf der Maske Administration: Kacheln für Daten laden, E-Mail-Versand, Listen erzeugen und Schuljahr zurücksetzen
Entwurf aus der Anforderungsspezifikation (UI-Mockup 4): die Administration mit Import, E-Mail-Versand, Listen und dem Zurücksetzen für das neue Schuljahr.

Aufbau laut Software Design

MVC mit drei Schichten: Anzeige, Logik und Datenhaltung. Die Regeln stehen nur in der Logikschicht. Trägt sich jemand selbst ein oder trägt die Administration jemanden ein, läuft beides durch dieselbe Prüfung.
Datenbank in dritter Normalform mit sechs Tabellen, Zugriff über Entity Framework Core. Das Platzkontingent von sechs steht in einer Tabelle und nicht fest im Code.
Sicherheit: Passwort-Hashes mit dem PasswordHasher von ASP.NET Core Identity (PBKDF2 mit Salt), ein Anti-Forgery-Token in jedem Formular, und Entity Framework baut die SQL-Befehle selbst, das schützt vor SQL-Injection.
Betrieb und Tests: geplant ist Azure mit App Service und SQL Database in der Region Schweiz Nord, ausgeliefert über Bitbucket Pipelines. Die Regeln sollen mit MSTest geprüft werden.
Arbeitsweise: Jedes Feature entsteht in einem eigenen Git-Branch und kommt über einen Pull Request in den Hauptzweig. Die Branches bleiben stehen, so lässt sich der Verlauf nachvollziehen.

Technologien

C# ASP.NET Core MVC Entity Framework Core Microsoft SQL Server Razor Bootstrap 5 Git