From 88d9fe591c7cc4bcbbfad8eaad5730a5ca6a0265 Mon Sep 17 00:00:00 2001 From: KoCoder Date: Fri, 20 Mar 2026 19:52:20 +0100 Subject: [PATCH 1/2] New: Tabellenverzeichnis --- 02-Allgemein.md | 36 +++++++++---------- ...uch-individueller-teil-Adam-Gaiswinkler.md | 16 +++++---- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/02-Allgemein.md b/02-Allgemein.md index aea5a12..808415c 100644 --- a/02-Allgemein.md +++ b/02-Allgemein.md @@ -173,6 +173,8 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc | Themenstellung: | Die individuelle Themenstellung umfasst die Konzeption und Umsetzung der Infrastruktur sowie die Entwicklung von Modulen für Auswertungen und ein Schwarzes Brett innerhalb der Plattform. | | Auflistung der einzelnen Ziele und Anforderungen | HW01, HW02, HW03, HW04/05, HW07, RED-1, SW-4, ScB-1–4 | +Table: Aufgabenverteilung Konstantin Hintermayer + ### Florian Edlmayer | | | @@ -180,6 +182,8 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc | Themenstellung: | Die individuelle Themenstellung umfasst die Entwicklung eines Premiumbereichs sowie die Umsetzung von Datenschutz- und Informationssicherheitsmaßnahmen, einschließlich Zugriffs- und Profilverwaltung. | | Auflistung der einzelnen Ziele und Anforderungen | HZ01, HZ05, HW12/13, SnT-3, ZUG-1–4, ZUG-6/7, PRE-1–3, Pro-1–4, DB-1 | +Table: Aufgabenverteilung Florian Edlmayer + ### Adam Gaiswinkler | | | @@ -187,6 +191,8 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc | Themenstellung: | Die individuelle Themenstellung umfasst die Entwicklung einer Hall of Fame, die Implementierung eines Anmeldetools für Treffen sowie die Konfiguration des Content-Management-Systems. | | Auflistung der einzelnen Ziele und Anforderungen | HZ02, HZ03, HZ06, SnT-2, SW-1/2, HoF-1/2, AfT-1–5 | +Table: Aufgabenverteilung Adam Gaiswinkler + ## Geplante Projektablauf ### Meilensteine @@ -202,6 +208,8 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc | _7_ | _12.03.2026_ | Finale Abgabe des Diplomarbeitsbuchs. | | _8_ | _22.04.2026_ | Defensio (Projektabschluss). | +Table: Meilensteine + ### Sprints | # | Beginn | Ende | Hinweis | Meilensteine | @@ -219,6 +227,8 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc | 11 | 19.02.2026 | 05.03.2026 | | | | 12 | 05.03.2026 | 19.03.2026 | | 6. Meilenstein | +Table: Sprints und deren Schwerpunkte + ## Projektumfeld Analyse ### Grafische Darstellung @@ -274,23 +284,12 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc ### Beschreibung der wichtigsten Umfelder -### Tabelle 3: Projektumfelder +| 8 | Konkurrenz | Potenziell vorhandene Konkurrenz | - | -| # | Bezeichnung | Beschreibung | Bewertung | -| :-- | :--------------------- | :------------------------------- | :-------- | -| 1 | Konstantin Hintermayer | Projektleiter | + | -| 2 | Florian Edlmayer | Projektmitarbeiter | + | -| 3 | Adam Gaiswinkler | Projektmitarbeiter | + | -| 4 | Ing. Thomas Gürth | Projektbetreuer | + | -| 5 | Absolventenverein | Auftraggeber des Alumnihubs | +/- | -| 6 | Schülerinnen/Schüler | Zielgruppe der SZU Ungargasse | +/- | -| 7 | Lehrerinnen/Lehrer | Lehrpersonal der SZU Ungargasse | +/- | -| 8 | Konkurrenz | Potenziell vorhandene Konkurrenz | - | +Table: Projektumfelder und deren Bewertung ## Risikoanalyse -### Tabelle 4: Risiken - | # | Bezeichnung | Beschreibung | Wahrscheinlichkeit (%) | Auswirkung (%) | Risikowert | | :-- | :----------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------: | :------------: | :--------: | | 1 | Infrastruktur | [cite_start]Instabilität oder Fehlkonfiguration der Cloud-Server (Hetzner CX22), die den Live-Betrieb unterbrechen[cite: 45, 51]. | 60 | 90 | 5400 | @@ -303,6 +302,8 @@ Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatisc | 8 | Oqtane-Integration | [cite_start]Komplexität bei der Entwicklung und Einbindung benutzerdefinierter CMS-Module[cite: 69, 72]. | 30 | 45 | 1350 | | 9 | Dokumentation | [cite_start]Lückenhafte technische Dokumentation erschwert die Wartung durch den Absolventenverein[cite: 155]. | 20 | 30 | 600 | +Table: Risikoanalyse und Bewertung + ### Grafische Darstellung ```mermaid @@ -327,14 +328,9 @@ quadrantChart ## Projektressourcen -### Persönliche Ressourcen(geplant) +| **SUMME** | **540** | -| Teammitglied | Personenstunden | -| :------------------------- | :-------------: | -| **Konstantin Hintermayer** | 180 | -| **Florian Edlmayer** | 180 | -| **Adam Gaiswinkler** | 180 | -| **SUMME** | **540** | +Table: Geplante persönliche Zeitressourcen ### Persönliche Ressourcen(real) diff --git a/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md b/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md index 1fd4348..675bdd5 100644 --- a/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md +++ b/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md @@ -253,6 +253,8 @@ Die zentrale Entität repräsentiert einen einzelnen Absolventeneintrag und wird | `ModifiedBy` | `string` | Zuletzt geändert von (Audit) | | `ModifiedOn` | `DateTime` | Zeitpunkt der letzten Änderung (Audit) | +Table: Datenmodell der Entität HallOfFame + Die Entität implementiert das Oqtane-Interface `IAuditable`, wodurch die Audit-Felder automatisch vom Framework befüllt werden. Der Fremdschlüssel `ModuleId` verknüpft jeden Eintrag mit einer bestimmten Modulinstanz und ermöglicht so den Multi-Tenant-Betrieb. **Entität HallOfFameReport** @@ -269,19 +271,21 @@ Die zweite Entität bildet einzelne Meldungen zu einem Eintrag ab und wird in de | `ModifiedBy` | `string` | Zuletzt geändert von (Audit) | | `ModifiedOn` | `DateTime` | Zeitpunkt der letzten Änderung (Audit) | +Table: Datenmodell der Entität HallOfFameReport + Der Fremdschlüssel zu `SZUAbsolventenvereinHallOfFame` ist mit kaskadierendem Löschen konfiguriert, sodass beim Löschen eines Eintrags automatisch alle zugehörigen Meldungen entfernt werden. Zwischen den beiden Entitäten besteht eine 1:n-Beziehung: Ein Eintrag kann beliebig viele Meldungen besitzen. #### Datenbankmigrationen Die Datenbankstruktur wird über Entity Framework Core Migrationen versioniert verwaltet. -| Migration | Versionsnummer | Inhalt | -| --------------------- | -------------- | ------------------------------------------------------------------------- | -| `InitializeModule` | `01.00.00.00` | Erstellt die Haupttabelle mit allen Grundspalten sowie den Audit-Spalten | -| `AddReportingColumns` | `01.00.00.02` | Erweitert die Haupttabelle um die Spalten `IsReported` und `ReportReason` | +| Migration | Versionsnummer | Inhalt | +| --------------------- | -------------- | ----------------------------------------------------------------------------- | +| `InitializeModule` | `01.00.00.00` | Erstellt die Haupttabelle mit allen Grundspalten sowie den Audit-Spalten | +| `AddReportingColumns` | `01.00.00.02` | Erweitert die Haupttabelle um die Spalten `IsReported` und `ReportReason` | +| `AddReportTable` | `01.00.00.03` | Erstellt die eigenständige Report-Tabelle mit Fremdschlüssel zur Haupttabelle | -> **Hinweis:** Version `01.00.00.01` wurde im Entwicklungsprozess übersprungen, da eine fehlerhafte Migration erstellt und anschließend wieder gelöscht werden musste. -> | `AddReportTable` | `01.00.00.03` | Erstellt die eigenständige Report-Tabelle mit Fremdschlüssel zur Haupttabelle | +Table: Übersicht der Datenbank migrationen #### Implementierungsdetails und Problemlösungen From 8dd75b0b16e793b0558c116af6016af2bdbd14d8 Mon Sep 17 00:00:00 2001 From: KoCoder Date: Fri, 20 Mar 2026 20:00:45 +0100 Subject: [PATCH 2/2] Remove: Adam: Abteilungstrenner. --- ...eitsbuch-individueller-teil-Adam-Gaiswinkler.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md b/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md index 675bdd5..7d630a5 100644 --- a/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md +++ b/03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md @@ -34,8 +34,6 @@ Der persönliche Aufgabenbereich umfasste die Entwicklung der beiden zentralen C Das Datenbankdesign sowie die Infrastruktur und das Server-Setup waren nicht Teil meines persönlichen Aufgabenbereichs und wurden von anderen Teammitgliedern verantwortet. Mein persönlicher Anteil beschränkt sich auf die Entwicklung der Anwendungsschicht, konkret auf die Implementierung der beiden CMS-Module – das Anmeldetool und das Hall-of-Fame-Modul – sowie deren Integration in das bestehende System. ---- - ## Technologischer Überblick In diesem Kapitel werden die Technologien und Werkzeuge vorgestellt, die für die Entwicklung des Anmeldetools, des Hall-of-Fame-Moduls und des Oqtane-Themes eingesetzt wurden. Die Beschreibungen sind dabei so gestaltet, dass sie auch für Leserinnen und Leser ohne technischen Hintergrund verständlich sind. @@ -74,8 +72,6 @@ Zu Beginn des Projekts wurde Visual Studio 2022 auf Windows verwendet. Visual St Ein besonderer Aspekt der Entwicklung war der Wechsel von Windows auf macOS während des Projektverlaufs. Unter Plattform versteht man in der Softwareentwicklung das Betriebssystem, auf dem eine Anwendung läuft – also etwa Windows, macOS oder Linux. Dieser Wechsel brachte spezifische Herausforderungen mit sich, da Oqtane primär für Windows entwickelt wurde. Obwohl Oqtane grundsätzlich auch auf macOS und Linux lauffähig ist, ist die Unterstützung für diese Plattformen veraltet und nicht vollständig angepasst. In der Praxis bedeutete das: Der Code ließ sich teilweise nicht fehlerfrei kompilieren – also in ein lauffähiges Programm umwandeln – und Oqtane startete zunächst nur mit Fehlermeldungen. Durch den Einsatz von JetBrains Rider als IDE konnten diese Probleme weitgehend gelöst werden, da JetBrains Rider eine bessere plattformübergreifende Integration bietet als die ursprünglich verwendete Entwicklungsumgebung. ---- - ## Entwicklung des Oqtane Themes ### Ziel des Themes @@ -139,8 +135,6 @@ Darüber hinaus wurde das ControlPanel von Oqtane integriert, das Administratori Die eigene Implementierung der Navigation über `PageState.Pages` und eine LINQ-basierte Filterlogik erwies sich als die richtige Entscheidung. Sie löste nicht nur das Problem der fehlenden Anpassbarkeit der Standardkomponente, sondern brachte gleichzeitig einen wesentlichen Mehrwert: Die Navigation ist vollständig wartungsfrei. Werden im CMS neue Seiten angelegt, erscheinen diese automatisch im Menü – ohne dass eine einzige Zeile Code angepasst werden muss. Zudem ermöglichte dieser Ansatz die vollständige Kontrolle über das Erscheinungsbild des Burger-Menüs, was mit der Standardkomponente nicht möglich gewesen wäre. ---- - ## Umsetzung der Module ### Anmeldetool @@ -307,8 +301,6 @@ Karten hatten ursprünglich unterschiedliche Höhen durch variierende Beschreibu Die ursprünglich fest codierten Sortierrichtungen wurden durch einen Toggle-Button neben dem Sortier-Dropdown ersetzt, der mit einem dynamischen Pfeil-Icon zwischen aufsteigender und absteigender Sortierung umschaltet. Die Sortierlogik ist in einer berechneten Eigenschaft gekapselt, die Suche und Sortierung kombiniert. ---- - ### Übergangslösung, Probleme & Learnings ### Übergangslösung (Sommer 2025) @@ -379,8 +371,6 @@ Darüber hinaus hat sich gezeigt, dass regelmäßige Team-Meetings ein wichtiges Auf persönlicher Ebene war die wichtigste Erkenntnis aus diesem Projekt die Bedeutung von Eigeninitiative. In einem größeren Teamprojekt kann man sich nicht immer darauf verlassen, dass andere Aufgaben erledigen oder Entscheidungen treffen. Gerade in den Phasen, in denen nicht alle Teammitglieder aktiv waren, hat sich gezeigt, dass proaktives Handeln entscheidend ist, um das Projekt voranzubringen. Diese Erfahrung hat das Bewusstsein dafür gestärkt, Verantwortung nicht nur für den eigenen Bereich, sondern auch für das Gesamtprojekt zu übernehmen und bei Bedarf auch Aufgaben außerhalb des ursprünglich geplanten Bereichs zu übernehmen. ---- - ### Testen & Qualitätssicherung ### Funktionstests der Module @@ -399,8 +389,6 @@ Neben den technischen Tests wurde die Plattform auch von weiteren Personen – d Ein häufiges Feedback war, dass die Unterscheidung zwischen Zusage und Absage auf den ersten Blick nicht immer sofort klar war. Daraufhin wurden die Schaltflächen farblich deutlicher gestaltet – Grün für die Zusage, Rot für die Absage – und die Beschriftungen präzisiert. Solche Rückmeldungen aus echten Nutzertests sind wertvoll, weil Entwicklerinnen und Entwickler ihre eigene Anwendung oft anders wahrnehmen als Personen, die das System zum ersten Mal sehen. ---- - ### Fazit und Ausblick ### Zielerreichung @@ -422,5 +410,3 @@ Für die Weiterentwicklung der Plattform gibt es mehrere sinnvolle nächste Schr Langfristig könnte die Plattform um eine automatische E-Mail-Benachrichtigung erweitert werden, die Mitglieder an bevorstehende Veranstaltungen erinnert. Auch eine Exportfunktion für die Anmeldedaten – beispielsweise als CSV oder PDF – wäre für die Vereinsverwaltung hilfreich. AlumniHub bietet als Plattform eine solide Grundlage, die in den kommenden Jahren kontinuierlich erweitert werden kann, um den Absolventenverein der HTL Ungargasse langfristig digital zu unterstützen. - ----