Update: Quellenverzeichnis

This commit is contained in:
2026-03-19 14:36:12 +01:00
parent e4cf3cb00d
commit aad23ca449
6 changed files with 336 additions and 176 deletions

View File

@@ -1,6 +1,4 @@
# Diplomarbeitsbuch Individueller Teil
---
# Adam Gaiswinkler
## 1. Einleitung
@@ -235,23 +233,23 @@ Das Modul verwendet zwei Entitäten, die in der Datenbank als Tabellen abgebilde
Die zentrale Entität repräsentiert einen einzelnen Absolventeneintrag und wird in der Datenbanktabelle `SZUAbsolventenvereinHallOfFame` gespeichert.
| Spalte | Datentyp | Beschreibung |
|--------|----------|--------------|
| `HallOfFameId` | `int` (PK, Auto-Inkrement) | Primärschlüssel |
| `ModuleId` | `int` (FK → `Module`) | Fremdschlüssel zur Oqtane-Modulinstanz |
| `Name` | `string` | Name der Person |
| `Year` | `int` | Abschlussjahrgang |
| `Description` | `string` | Beschreibung bzw. Werdegang |
| `Image` | `string` | Relativer Pfad zum hochgeladenen Foto |
| `Link` | `string` | Optionaler externer Link |
| `Status` | `string` (max. 50) | Veröffentlichungsstatus: „Draft" oder „Published" |
| `UserId` | `int` | ID der Benutzerin bzw. des Benutzers, der den Eintrag erstellt hat |
| `IsReported` | `bool` | Kennzeichnung, ob der Eintrag gemeldet wurde |
| `ReportReason` | `string` | (Legacy) Ursprüngliches Feld für Meldegrund, abgelöst durch die Report-Tabelle |
| `CreatedBy` | `string` | Erstellt von (Audit) |
| `CreatedOn` | `DateTime` | Erstellzeitpunkt (Audit) |
| `ModifiedBy` | `string` | Zuletzt geändert von (Audit) |
| `ModifiedOn` | `DateTime` | Zeitpunkt der letzten Änderung (Audit) |
| Spalte | Datentyp | Beschreibung |
| -------------- | -------------------------- | ------------------------------------------------------------------------------ |
| `HallOfFameId` | `int` (PK, Auto-Inkrement) | Primärschlüssel |
| `ModuleId` | `int` (FK → `Module`) | Fremdschlüssel zur Oqtane-Modulinstanz |
| `Name` | `string` | Name der Person |
| `Year` | `int` | Abschlussjahrgang |
| `Description` | `string` | Beschreibung bzw. Werdegang |
| `Image` | `string` | Relativer Pfad zum hochgeladenen Foto |
| `Link` | `string` | Optionaler externer Link |
| `Status` | `string` (max. 50) | Veröffentlichungsstatus: „Draft" oder „Published" |
| `UserId` | `int` | ID der Benutzerin bzw. des Benutzers, der den Eintrag erstellt hat |
| `IsReported` | `bool` | Kennzeichnung, ob der Eintrag gemeldet wurde |
| `ReportReason` | `string` | (Legacy) Ursprüngliches Feld für Meldegrund, abgelöst durch die Report-Tabelle |
| `CreatedBy` | `string` | Erstellt von (Audit) |
| `CreatedOn` | `DateTime` | Erstellzeitpunkt (Audit) |
| `ModifiedBy` | `string` | Zuletzt geändert von (Audit) |
| `ModifiedOn` | `DateTime` | Zeitpunkt der letzten Änderung (Audit) |
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.
@@ -259,15 +257,15 @@ Die Entität implementiert das Oqtane-Interface `IAuditable`, wodurch die Audit-
Die zweite Entität bildet einzelne Meldungen zu einem Eintrag ab und wird in der Tabelle `SZUAbsolventenvereinHallOfFameReport` gespeichert.
| Spalte | Datentyp | Beschreibung |
|--------|----------|--------------|
| `HallOfFameReportId` | `int` (PK, Auto-Inkrement) | Primärschlüssel |
| `HallOfFameId` | `int` (FK → `SZUAbsolventenvereinHallOfFame`) | Zugehöriger Eintrag |
| `Reason` | `string` | Meldegrund |
| `CreatedBy` | `string` | Erstellt von (Audit) |
| `CreatedOn` | `DateTime` | Erstellzeitpunkt (Audit) |
| `ModifiedBy` | `string` | Zuletzt geändert von (Audit) |
| `ModifiedOn` | `DateTime` | Zeitpunkt der letzten Änderung (Audit) |
| Spalte | Datentyp | Beschreibung |
| -------------------- | --------------------------------------------- | -------------------------------------- |
| `HallOfFameReportId` | `int` (PK, Auto-Inkrement) | Primärschlüssel |
| `HallOfFameId` | `int` (FK → `SZUAbsolventenvereinHallOfFame`) | Zugehöriger Eintrag |
| `Reason` | `string` | Meldegrund |
| `CreatedBy` | `string` | Erstellt von (Audit) |
| `CreatedOn` | `DateTime` | Erstellzeitpunkt (Audit) |
| `ModifiedBy` | `string` | Zuletzt geändert von (Audit) |
| `ModifiedOn` | `DateTime` | Zeitpunkt der letzten Änderung (Audit) |
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.
@@ -275,13 +273,13 @@ Der Fremdschlüssel zu `SZUAbsolventenvereinHallOfFame` ist mit kaskadierendem L
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` |
> **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 |
> | `AddReportTable` | `01.00.00.03` | Erstellt die eigenständige Report-Tabelle mit Fremdschlüssel zur Haupttabelle |
#### Implementierungsdetails und Problemlösungen
@@ -395,8 +393,8 @@ 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.
---
## 7. Fazit und Ausblick
### 7.1 Zielerreichung