Fallstudie im Kurs DLBITOWAWBI01 – Programmierung von Web-Anwendungen – webbasierte betriebliche Informationssysteme (IU Internationale Hochschule). Aufgabe war die Entwicklung eines webbasierten Prototyps für ein fiktives Szenario, um Konzepte wie REST-APIs, Authentifizierung/ Autorisierung und relationale Datenmodellierung praktisch anzuwenden.
Webbasierte Anwendung zur Verwaltung von Projekten, Aufgaben und Mitarbeitenden für ein IT-Dienstleistungsunternehmen, mit rollenbasierter Authentifizierung/Autorisierung (ADMIN, PROJEKTLEITUNG, MITARBEITER) und serverseitig durchgesetzter Sichtbarkeitsregel.
- Backend: Java 21, Spring Boot 4, Spring MVC (REST), Spring Data JPA, Spring Security, JWT (JJWT)
- Frontend: React (Vite), React Router
- Datenbank: dateibasiertes H2 für lokale Entwicklung (übersteht Neustarts), PostgreSQL für Produktivbetrieb vorgesehen
- Tests: JUnit 5, Mockito, Spring MockMvc, AssertJ (23 automatisierte Tests)
- Java 21 (JDK)
- Node.js + npm
cd backend
./mvnw spring-boot:runLäuft auf http://localhost:8080. Beim ersten Start wird automatisch ein Admin-Account angelegt
(DataInitializer), Zugangsdaten über Umgebungsvariablen konfigurierbar:
export ADMIN_EMAIL=admin@taskmanager.local # Default
export ADMIN_PASSWORD=ChangeMe123! # Default – vor Produktivbetrieb unbedingt ändern
export JWT_SECRET=<eigenes-secret> # Default nur für lokale Entwicklung geeignetBackend-Tests ausführen:
./mvnw testcd frontend
npm install
npm run devLäuft auf http://localhost:5173 und erwartet das Backend unter http://localhost:8080.
Die schriftliche Ausarbeitung (Fallstudie) inkl. Architektur, Datenbankstruktur, UML-Klassendiagramm, Teststrategie und KI-Einsatz ist Teil der Prüfungsleistung und wird separat über Turnitin eingereicht; sie ist nicht Bestandteil dieses Code-Repositorys.
Dieser Prototyp ist nicht ohne Weiteres produktivreif:
- Mandantenfähigkeit ist nur im Datenmodell vorbereitet, aber nicht vollständig umgesetzt
- JWT-Secret und Admin-Bootstrap-Passwort sind Default-Werte (siehe oben) und müssen für den produktiven Einsatz über echte Secrets ersetzt werden
- Kein Token-Refresh-Mechanismus, kein Rate-Limiting gegen wiederholte Login-Versuche
- Kein versioniertes Datenbank-Migrationswerkzeug (z. B. Flyway); das Schema wird zur
Entwicklungszeit automatisch aus den Entity-Klassen generiert (
ddl-auto=update)