This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
\newpage
|
\cleardoublepage
|
||||||
|
|
||||||
# Kurzfassung {.unnumbered .unlisted}
|
# Kurzfassung {.unnumbered .unlisted}
|
||||||
|
|
||||||
@@ -7,13 +7,17 @@ In dieser Diplomarbeit geht es um die Entwicklung von „AlumniHub“ – einer
|
|||||||
Die technische Arbeit haben wir uns im Team aufgeteilt: Konstantin Hintermayer hat als Product Owner die Linux-Serverinfrastruktur, die PostgreSQL-Datenbank und die CI/CD-Pipelines aufgesetzt sowie das digitale „Schwarze Brett“ programmiert. Adam Gaiswinkler hat das responsive Design im Stil der Schule entworfen und das Event-Anmeldetool sowie die „Hall of Fame“ inklusive PDF-Export umgesetzt. Florian Edlmayer war für den Premiumbereich mit seinem Freigabe-Workflow verantwortlich, hat die DSGVO-Vorgaben umgesetzt und den sicheren Login über LinkedIn (OAuth 2.0) eingebaut. Das Ergebnis ist eine leistungsstarke Plattform, die dem Verein die tägliche Verwaltungsarbeit deutlich erleichtert.
|
Die technische Arbeit haben wir uns im Team aufgeteilt: Konstantin Hintermayer hat als Product Owner die Linux-Serverinfrastruktur, die PostgreSQL-Datenbank und die CI/CD-Pipelines aufgesetzt sowie das digitale „Schwarze Brett“ programmiert. Adam Gaiswinkler hat das responsive Design im Stil der Schule entworfen und das Event-Anmeldetool sowie die „Hall of Fame“ inklusive PDF-Export umgesetzt. Florian Edlmayer war für den Premiumbereich mit seinem Freigabe-Workflow verantwortlich, hat die DSGVO-Vorgaben umgesetzt und den sicheren Login über LinkedIn (OAuth 2.0) eingebaut. Das Ergebnis ist eine leistungsstarke Plattform, die dem Verein die tägliche Verwaltungsarbeit deutlich erleichtert.
|
||||||
\cleardoublepage
|
\cleardoublepage
|
||||||
|
|
||||||
|
|
||||||
|
\cleardoublepage
|
||||||
|
|
||||||
# Abstract {.unnumbered .unlisted}
|
# Abstract {.unnumbered .unlisted}
|
||||||
|
|
||||||
This diploma thesis covers the development of "AlumniHub," a web platform designed for the alumni association of the HTL Ungargasse. Our goal was to replace their old, manual administration with an automated system using ASP.NET Core, Blazor, and the Oqtane CMS. The platform now handles communication, event planning, and networking in one central place.
|
This diploma thesis covers the development of "AlumniHub," a web platform designed for the alumni association of the HTL Ungargasse. Our goal was to replace their old, manual administration with an automated system using ASP.NET Core, Blazor, and the Oqtane CMS. The platform now handles communication, event planning, and networking in one central place.
|
||||||
|
|
||||||
The technical work was split between the team: Konstantin Hintermayer (Product Owner) was responsible for the Linux server infrastructure, the PostgreSQL database, and CI/CD pipelines, while also building the digital "Blackboard." Adam Gaiswinkler created the responsive UI in the school’s style and implemented the event registration tool and the "Hall of Fame" with automated PDF exports. Florian Edlmayer developed the premium area and its approval workflow, ensured GDPR compliance, and integrated the LinkedIn Login (OAuth 2.0). Overall, we built a high-performance system that significantly simplifies the association’s daily administrative work.
|
The technical work was split between the team: Konstantin Hintermayer (Product Owner) was responsible for the Linux server infrastructure, the PostgreSQL database, and CI/CD pipelines, while also building the digital "Blackboard." Adam Gaiswinkler created the responsive UI in the school’s style and implemented the event registration tool and the "Hall of Fame" with automated PDF exports. Florian Edlmayer developed the premium area and its approval workflow, ensured GDPR compliance, and integrated the LinkedIn Login (OAuth 2.0). Overall, we built a high-performance system that significantly simplifies the association’s daily administrative work.
|
||||||
|
|
||||||
\newpage
|
|
||||||
|
\cleardoublepage
|
||||||
|
|
||||||
# Danksagung {.unnumbered .unlisted}
|
# Danksagung {.unnumbered .unlisted}
|
||||||
|
|
||||||
@@ -29,13 +33,14 @@ Als wir im Oktober kurzfristig eine neue Produktionsumgebung benötigten, wurde
|
|||||||
|
|
||||||
Für den „frischen Wind“ und das sorgfältige Korrekturlesen der Arbeit bedanken wir uns herzlich bei Frau Prof. Gertrude Brindlmayer. Ihr geschulter Blick auf Details, die dem Team im Arbeitsprozess entgangen waren, stellte eine große Bereicherung für die finale Qualität dieser Arbeit dar.
|
Für den „frischen Wind“ und das sorgfältige Korrekturlesen der Arbeit bedanken wir uns herzlich bei Frau Prof. Gertrude Brindlmayer. Ihr geschulter Blick auf Details, die dem Team im Arbeitsprozess entgangen waren, stellte eine große Bereicherung für die finale Qualität dieser Arbeit dar.
|
||||||
|
|
||||||
\newpage
|
\cleardoublepage
|
||||||
|
|
||||||
# Vorwort {.unnumbered .unlisted}
|
# Vorwort {.unnumbered .unlisted}
|
||||||
|
|
||||||
Diese Diplomarbeit ist im Schuljahr 2025/2026 an der HTL SZU Ungargasse im Rahmen des Projekts Alumnihub entstanden. Unser Ziel war es, zusammen mit dem Absolventenverein die veraltete Mitgliederverwaltung zu modernisieren und eine neue digitale Plattform für ehemalige Schülerinnen und Schüler zu entwickeln. Was am Anfang nur eine Pflichtaufgabe für die Schule war, wurde für uns schnell zu einem Projekt, mit dem wir uns voll identifiziert haben. Besonders herausfordernd war, dass unser Team im Laufe der Zeit kleiner wurde und wir am Ende nur noch zu dritt waren. Konstantin Hintermayer, Florian Edlmayer und Adam Gaiswinkler mussten deshalb viel mehr Verantwortung übernehmen und technisches Wissen schneller aufbauen als eigentlich geplant. Die Arbeit am AlumniHub war für uns die ideale Chance, das Wissen aus der Theorie endlich mal in einem echten und anspruchsvollen Softwareprojekt einzusetzen. Es war eine stressige, aber sehr lehrreiche Zeit, und wir sind stolz auf das, was wir am Ende als Team abgeliefert haben.
|
Diese Diplomarbeit ist im Schuljahr 2025/2026 an der HTL SZU Ungargasse im Rahmen des Projekts Alumnihub entstanden. Unser Ziel war es, zusammen mit dem Absolventenverein die veraltete Mitgliederverwaltung zu modernisieren und eine neue digitale Plattform für ehemalige Schülerinnen und Schüler zu entwickeln. Was am Anfang nur eine Pflichtaufgabe für die Schule war, wurde für uns schnell zu einem Projekt, mit dem wir uns voll identifiziert haben. Besonders herausfordernd war, dass unser Team im Laufe der Zeit kleiner wurde und wir am Ende nur noch zu dritt waren. Konstantin Hintermayer, Florian Edlmayer und Adam Gaiswinkler mussten deshalb viel mehr Verantwortung übernehmen und technisches Wissen schneller aufbauen als eigentlich geplant. Die Arbeit am AlumniHub war für uns die ideale Chance, das Wissen aus der Theorie endlich mal in einem echten und anspruchsvollen Softwareprojekt einzusetzen. Es war eine stressige, aber sehr lehrreiche Zeit, und wir sind stolz auf das, was wir am Ende als Team abgeliefert haben.
|
||||||
|
|
||||||
\newpage
|
|
||||||
|
\cleardoublepage
|
||||||
|
|
||||||
# Einsatz Künstlicher Intelligenz (KI-Disclaimer) {.unnumbered .unlisted}
|
# Einsatz Künstlicher Intelligenz (KI-Disclaimer) {.unnumbered .unlisted}
|
||||||
|
|
||||||
|
|||||||
@@ -66,9 +66,9 @@
|
|||||||
\hrulefill
|
\hrulefill
|
||||||
\end{titlepage}
|
\end{titlepage}
|
||||||
|
|
||||||
\newpage
|
\thispagestyle{empty}
|
||||||
\pagenumbering{Roman}
|
|
||||||
\cleardoublepage
|
\cleardoublepage
|
||||||
|
\pagenumbering{Roman}
|
||||||
\section*{Eidesstattliche Erklärung}
|
\section*{Eidesstattliche Erklärung}
|
||||||
Ich erkläre, dass ich die vorliegende Diplomarbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt, sowie die aus anderen Werken übernommene Inhalte durch Quellenangaben erkenntlich gemacht habe.
|
Ich erkläre, dass ich die vorliegende Diplomarbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt, sowie die aus anderen Werken übernommene Inhalte durch Quellenangaben erkenntlich gemacht habe.
|
||||||
|
|
||||||
|
|||||||
@@ -133,13 +133,13 @@ graph TD
|
|||||||
Filter2 --> Result[Sichtbare Navigation<br/>~3 Inhaltsseiten im Menü]
|
Filter2 --> Result[Sichtbare Navigation<br/>~3 Inhaltsseiten im Menü]
|
||||||
Result -.-> Note[Neue Seiten im CMS erscheinen automatisch im Menü – kein Code nötig]
|
Result -.-> Note[Neue Seiten im CMS erscheinen automatisch im Menü – kein Code nötig]
|
||||||
|
|
||||||
style Start fill:#444441,stroke:#B4B2A9,color:#D3D1C7
|
style Start fill:#F5F5F3,stroke:#B4B2A9,color:#000000
|
||||||
style Filter1 fill:#3C3489,stroke:#AFA9EC,color:#CECBE6
|
style Filter1 fill:#E8E6FF,stroke:#3C3489,color:#000000
|
||||||
style Filter2 fill:#3C3489,stroke:#AFA9EC,color:#CECBE6
|
style Filter2 fill:#E8E6FF,stroke:#3C3489,color:#000000
|
||||||
style Rejected1 fill:#791F1F,stroke:#F09595,color:#F7C1C1
|
style Rejected1 fill:#FFE8E8,stroke:#791F1F,color:#000000
|
||||||
style Rejected2 fill:#791F1F,stroke:#F09595,color:#F7C1C1
|
style Rejected2 fill:#FFE8E8,stroke:#791F1F,color:#000000
|
||||||
style Result fill:#085041,stroke:#5DCAA5,color:#9FE1CF
|
style Result fill:#E6FFF9,stroke:#085041,color:#000000
|
||||||
style Note fill:none,stroke:#B4B2A9,stroke-dasharray: 5 5,color:#B4B2A9
|
style Note fill:none,stroke:#B4B2A9,stroke-dasharray: 5 5,color:#000000
|
||||||
```
|
```
|
||||||
|
|
||||||
Dies reduziert den Wartungsaufwand erheblich und stellt sicher, dass die Navigation stets dem aktuellen Stand der Plattform entspricht.
|
Dies reduziert den Wartungsaufwand erheblich und stellt sicher, dass die Navigation stets dem aktuellen Stand der Plattform entspricht.
|
||||||
@@ -283,15 +283,15 @@ graph TD
|
|||||||
Admin -- Verstoß --> Deleted[Gelöscht<br/>→ neuer Eintrag möglich]
|
Admin -- Verstoß --> Deleted[Gelöscht<br/>→ neuer Eintrag möglich]
|
||||||
|
|
||||||
%% Styling to match original SVG
|
%% Styling to match original SVG
|
||||||
style Start fill:#444441,stroke:#B4B2A9,color:#D3D1C7
|
style Start fill:#F5F5F3,stroke:#B4B2A9,color:#000000
|
||||||
style Create fill:#3C3489,stroke:#AFA9EC,color:#CECBE6
|
style Create fill:#E8E6FF,stroke:#3C3489,color:#000000
|
||||||
style Rejected fill:#791F1F,stroke:#F09595,color:#F7C1C1
|
style Rejected fill:#FFE8E8,stroke:#791F1F,color:#000000
|
||||||
style Draft fill:#085041,stroke:#5DCAA5,color:#9FE1CF
|
style Draft fill:#E6FFF9,stroke:#085041,color:#000000
|
||||||
style Published fill:#085041,stroke:#5DCAA5,color:#9FE1CF
|
style Published fill:#E6FFF9,stroke:#085041,color:#000000
|
||||||
style Reported fill:#633806,stroke:#EF9F27,color:#FAC775
|
style Reported fill:#FFF2E0,stroke:#633806,color:#000000
|
||||||
style Admin fill:#444441,stroke:#B4B2A9,color:#D3D1C7
|
style Admin fill:#F5F5F3,stroke:#B4B2A9,color:#000000
|
||||||
style Approved fill:#27500A,stroke:#97C459,color:#C0DD97
|
style Approved fill:#F0FFE6,stroke:#27500A,color:#000000
|
||||||
style Deleted fill:#791F1F,stroke:#F09595,color:#F7C1C1
|
style Deleted fill:#FFE8E8,stroke:#791F1F,color:#000000
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Meldefunktion
|
##### Meldefunktion
|
||||||
@@ -304,6 +304,7 @@ Die Meldefunktion ist dabei nicht direkt im Hall-of-Fame-Modul implementiert, so
|
|||||||
|
|
||||||
<!---->
|
<!---->
|
||||||
```mermaid
|
```mermaid
|
||||||
|
%%{init: {'theme': 'neutral'}}%%
|
||||||
sequenceDiagram
|
sequenceDiagram
|
||||||
%%| filename: reporting_sequence_diagram
|
%%| filename: reporting_sequence_diagram
|
||||||
%%| fig-cap: Ablauf des globalen Reporting-Systems
|
%%| fig-cap: Ablauf des globalen Reporting-Systems
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Für den Verein bedeutet das: rechtskonforme Datenverarbeitung, gesicherte Daten
|
|||||||
|
|
||||||
\
|
\
|
||||||
|
|
||||||
• **Premiumbereich:**
|
- **Premiumbereich:**
|
||||||
Ein Schwerpunkt der Arbeit ist die Entwicklung eines Oqtane-Moduls, das einen Premiumbereich bereitstellt. Dieser Bereich soll ausschließlich autorisierten Benutzerinnen und Benutzern zugänglich sein und spezielle Inhalte oder Funktionen anbieten wie zum Beispiel das hochladen und ansehen von Ingeneuranträgen als Vorlage oder das finden und Kontakt aufnehmen mit anderen Benutzern. Dabei werden grundlegende Konzepte wie Benutzerrollen, Zugriffsrechte und die Integration in das bestehende CMS eingebunden.
|
Ein Schwerpunkt der Arbeit ist die Entwicklung eines Oqtane-Moduls, das einen Premiumbereich bereitstellt. Dieser Bereich soll ausschließlich autorisierten Benutzerinnen und Benutzern zugänglich sein und spezielle Inhalte oder Funktionen anbieten wie zum Beispiel das hochladen und ansehen von Ingeneuranträgen als Vorlage oder das finden und Kontakt aufnehmen mit anderen Benutzern. Dabei werden grundlegende Konzepte wie Benutzerrollen, Zugriffsrechte und die Integration in das bestehende CMS eingebunden.
|
||||||
|
|
||||||
##### Erstellung einer Datenschutzerklärung
|
##### Erstellung einer Datenschutzerklärung
|
||||||
@@ -152,9 +152,9 @@ Durch diese Architektur wird sichergestellt, dass die eigentliche Logik der Anwe
|
|||||||
|
|
||||||
Ein weiterer Vorteil von ASP.NET besteht in der klar strukturierten Architektur moderner Webanwendungen. Typischerweise wird eine Anwendung in mehrere Schichten unterteilt, beispielsweise:
|
Ein weiterer Vorteil von ASP.NET besteht in der klar strukturierten Architektur moderner Webanwendungen. Typischerweise wird eine Anwendung in mehrere Schichten unterteilt, beispielsweise:
|
||||||
|
|
||||||
• Präsentationsschicht (Benutzeroberfläche)
|
- Präsentationsschicht (Benutzeroberfläche)
|
||||||
• Geschäftslogik
|
- Geschäftslogik
|
||||||
• Datenzugriffsschicht
|
- Datenzugriffsschicht
|
||||||
|
|
||||||
Diese Struktur erleichtert die Wartung und Erweiterung der Anwendung erheblich, da Änderungen gezielt innerhalb einzelner Komponenten vorgenommen werden können.
|
Diese Struktur erleichtert die Wartung und Erweiterung der Anwendung erheblich, da Änderungen gezielt innerhalb einzelner Komponenten vorgenommen werden können.
|
||||||
|
|
||||||
@@ -166,16 +166,16 @@ Eine relationale Datenbank speichert Informationen in Tabellen, die aus Zeilen u
|
|||||||
|
|
||||||
Durch diese Struktur kann beispielsweise gespeichert werden:
|
Durch diese Struktur kann beispielsweise gespeichert werden:
|
||||||
|
|
||||||
• welcher Benutzer existiert
|
- welcher Benutzer existiert
|
||||||
• welche Veranstaltungen geplant sind
|
- welche Veranstaltungen geplant sind
|
||||||
• welcher Benutzer sich für welches Event angemeldet hat
|
- welcher Benutzer sich für welches Event angemeldet hat
|
||||||
|
|
||||||
PostgreSQL bietet darüber hinaus zahlreiche Funktionen, die für moderne Webanwendungen wichtig sind. Dazu gehören unter anderem:
|
PostgreSQL bietet darüber hinaus zahlreiche Funktionen, die für moderne Webanwendungen wichtig sind. Dazu gehören unter anderem:
|
||||||
|
|
||||||
• hohe Stabilität und Zuverlässigkeit
|
- hohe Stabilität und Zuverlässigkeit
|
||||||
• Unterstützung komplexer Datenabfragen mittels SQL
|
- Unterstützung komplexer Datenabfragen mittels SQL
|
||||||
• Transaktionssicherheit zur Vermeidung von Datenverlust
|
- Transaktionssicherheit zur Vermeidung von Datenverlust
|
||||||
• Erweiterbarkeit durch zusätzliche Module
|
- Erweiterbarkeit durch zusätzliche Module
|
||||||
|
|
||||||
Ein weiterer wichtiger Vorteil besteht darin, dass PostgreSQL sehr gut mit modernen Webframeworks wie ASP.NET zusammenarbeitet. Dadurch kann die Anwendung effizient auf gespeicherte Daten zugreifen und diese verarbeiten.
|
Ein weiterer wichtiger Vorteil besteht darin, dass PostgreSQL sehr gut mit modernen Webframeworks wie ASP.NET zusammenarbeitet. Dadurch kann die Anwendung effizient auf gespeicherte Daten zugreifen und diese verarbeiten.
|
||||||
|
|
||||||
@@ -199,16 +199,16 @@ Der Anwendungsbereich der DSGVO umfasst alle Verarbeitungen personenbezogener Da
|
|||||||
|
|
||||||
Die DSGVO verfolgt mehrere grundsätzliche Ziele:
|
Die DSGVO verfolgt mehrere grundsätzliche Ziele:
|
||||||
|
|
||||||
• Schutz der Grundrechte natürlicher Personen bei der Verarbeitung ihrer personenbezogenen Daten sowie die Gewährleistung ihrer Grundfreiheiten.
|
- Schutz der Grundrechte natürlicher Personen bei der Verarbeitung ihrer personenbezogenen Daten sowie die Gewährleistung ihrer Grundfreiheiten.
|
||||||
• Einheitlicher Datenschutz in der EU, sodass sowohl Unternehmen innerhalb als auch außerhalb der EU, die Daten von EU-Bürgern verarbeiten, denselben Regeln unterliegen.
|
- Einheitlicher Datenschutz in der EU, sodass sowohl Unternehmen innerhalb als auch außerhalb der EU, die Daten von EU-Bürgern verarbeiten, denselben Regeln unterliegen.
|
||||||
• Schaffung klarer Pflichten für Datenverantwortliche und -verarbeiter zur rechtskonformen Datenverarbeitung.
|
- Schaffung klarer Pflichten für Datenverantwortliche und -verarbeiter zur rechtskonformen Datenverarbeitung.
|
||||||
|
|
||||||
Die DSGVO enthält dabei zentral die Grundsätze der Datenverarbeitung (Art. 5 DSGVO), die sicherstellen, dass personenbezogene Daten nur rechtmäßig, zweckgebunden und in transparentem Umfang verarbeitet werden. Dazu gehören unter anderem:
|
Die DSGVO enthält dabei zentral die Grundsätze der Datenverarbeitung (Art. 5 DSGVO), die sicherstellen, dass personenbezogene Daten nur rechtmäßig, zweckgebunden und in transparentem Umfang verarbeitet werden. Dazu gehören unter anderem:
|
||||||
|
|
||||||
• Rechtmäßigkeit, Fairness und Transparenz der Verarbeitung
|
- Rechtmäßigkeit, Fairness und Transparenz der Verarbeitung
|
||||||
• Zweckbindung der Datenerhebung
|
- Zweckbindung der Datenerhebung
|
||||||
• Datenminimierung und Speicherbegrenzung
|
- Datenminimierung und Speicherbegrenzung
|
||||||
• Integrität und Vertraulichkeit der Datenverarbeitung
|
- Integrität und Vertraulichkeit der Datenverarbeitung
|
||||||
|
|
||||||
Die Einhaltung dieser Prinzipien ist für jede Organisation verpflichtend, die personenbezogene Daten verarbeitet – unabhängig von ihrer Größe oder Branche. Dies umfasst sowohl technische Aspekte der Datenverarbeitung als auch die Informationspflichten gegenüber Betroffenen, wie sie etwa in Datenschutzerklärungen umgesetzt werden müssen.
|
Die Einhaltung dieser Prinzipien ist für jede Organisation verpflichtend, die personenbezogene Daten verarbeitet – unabhängig von ihrer Größe oder Branche. Dies umfasst sowohl technische Aspekte der Datenverarbeitung als auch die Informationspflichten gegenüber Betroffenen, wie sie etwa in Datenschutzerklärungen umgesetzt werden müssen.
|
||||||
|
|
||||||
@@ -220,21 +220,21 @@ Im Rahmen der Diplomarbeit wurde eine umfassende Analyse der Datenschutzanforder
|
|||||||
|
|
||||||
Ein zentrales Element der Umsetzung war die Erstellung einer gesetzeskonformen Datenschutzerklärung. Diese informiert die Nutzerinnen und Nutzer über:
|
Ein zentrales Element der Umsetzung war die Erstellung einer gesetzeskonformen Datenschutzerklärung. Diese informiert die Nutzerinnen und Nutzer über:
|
||||||
|
|
||||||
• die Art der verarbeiteten personenbezogenen Daten,
|
- die Art der verarbeiteten personenbezogenen Daten,
|
||||||
• den Zweck der Datenverarbeitung,
|
- den Zweck der Datenverarbeitung,
|
||||||
• die Rechtsgrundlagen der Verarbeitung,
|
- die Rechtsgrundlagen der Verarbeitung,
|
||||||
• die Speicherdauer der Daten,
|
- die Speicherdauer der Daten,
|
||||||
• die Weitergabe von Daten an Dritte
|
- die Weitergabe von Daten an Dritte
|
||||||
• sowie über die Rechte der Betroffenen gemäß Art. 15–22 DSGVO.
|
- sowie über die Rechte der Betroffenen gemäß Art. 15–22 DSGVO.
|
||||||
|
|
||||||
Die Datenschutzerklärung wird auf der Webseite gut sichtbar eingebunden und ist für alle Nutzerinnen und Nutzer jederzeit zugänglich.
|
Die Datenschutzerklärung wird auf der Webseite gut sichtbar eingebunden und ist für alle Nutzerinnen und Nutzer jederzeit zugänglich.
|
||||||
|
|
||||||
Neben der Informationspflicht wurden auch technische und organisatorische Maßnahmen umgesetzt, um die Sicherheit der verarbeiteten Daten zu gewährleisten. Dazu gehören unter anderem:
|
Neben der Informationspflicht wurden auch technische und organisatorische Maßnahmen umgesetzt, um die Sicherheit der verarbeiteten Daten zu gewährleisten. Dazu gehören unter anderem:
|
||||||
|
|
||||||
• Verschlüsselte Übertragung von Daten mittels HTTPS
|
- Verschlüsselte Übertragung von Daten mittels HTTPS
|
||||||
• Passwortgeschützter Zugriff auf sensible Daten
|
- Passwortgeschützter Zugriff auf sensible Daten
|
||||||
• Regelmäßige Sicherheitsupdates der eingesetzten Software
|
- Regelmäßige Sicherheitsupdates der eingesetzten Software
|
||||||
• Minimierung der Datenerhebung auf das Notwendige: Es werden nur die Daten erhoben, die für die Funktion der Webseite unbedingt erforderlich sind. (Grundprinzip der Datenminimierung nach Art. 5 Abs. 1 lit. c DSGVO)
|
- Minimierung der Datenerhebung auf das Notwendige: Es werden nur die Daten erhoben, die für die Funktion der Webseite unbedingt erforderlich sind. (Grundprinzip der Datenminimierung nach Art. 5 Abs. 1 lit. c DSGVO)
|
||||||
|
|
||||||
#### Schutz personenbezogener Daten der Benutzer [@dsb]
|
#### Schutz personenbezogener Daten der Benutzer [@dsb]
|
||||||
|
|
||||||
@@ -398,9 +398,9 @@ Die erste Zeile definiert den Interpreter, mit dem das Skript ausgeführt wird.
|
|||||||
|
|
||||||
Die Anweisung set -euo pipefail erhöht die Sicherheit und Stabilität des Skripts:
|
Die Anweisung set -euo pipefail erhöht die Sicherheit und Stabilität des Skripts:
|
||||||
|
|
||||||
• `-e` beendet das Skript sofort, wenn ein Befehl fehlschlägt
|
- `-e` beendet das Skript sofort, wenn ein Befehl fehlschlägt
|
||||||
• `-u` verhindert die Verwendung nicht definierter Variablen
|
- `-u` verhindert die Verwendung nicht definierter Variablen
|
||||||
• `-o pipefail` sorgt dafür, dass auch Fehler innerhalb von Befehls-Pipelines erkannt werden
|
- `-o pipefail` sorgt dafür, dass auch Fehler innerhalb von Befehls-Pipelines erkannt werden
|
||||||
|
|
||||||
Diese Einstellungen verhindern, dass das Backup bei Fehlern unbemerkt unvollständig ausgeführt wird.
|
Diese Einstellungen verhindern, dass das Backup bei Fehlern unbemerkt unvollständig ausgeführt wird.
|
||||||
|
|
||||||
@@ -434,11 +434,11 @@ Diese Meldungen werden bei automatischer Ausführung über den Cronjob in eine L
|
|||||||
|
|
||||||
Die Implementierung zeichnet sich durch folgende Eigenschaften aus:
|
Die Implementierung zeichnet sich durch folgende Eigenschaften aus:
|
||||||
|
|
||||||
• vollständige Sicherung von Datenbank und Anwendungsdateien
|
- vollständige Sicherung von Datenbank und Anwendungsdateien
|
||||||
• automatische tägliche Ausführung
|
- automatische tägliche Ausführung
|
||||||
• integrierte Fehlerbehandlung
|
- integrierte Fehlerbehandlung
|
||||||
• strukturierte Archivierung mit Zeitstempel
|
- strukturierte Archivierung mit Zeitstempel
|
||||||
• automatische Speicherverwaltung durch Rotationsmechanismus
|
- automatische Speicherverwaltung durch Rotationsmechanismus
|
||||||
|
|
||||||
Durch diese Umsetzung wurde ein zuverlässiges und wartbares Backup-System geschaffen, das den kontinuierlichen Betrieb der Webanwendung unterstützt und im Fehlerfall eine schnelle Wiederherstellung ermöglicht.
|
Durch diese Umsetzung wurde ein zuverlässiges und wartbares Backup-System geschaffen, das den kontinuierlichen Betrieb der Webanwendung unterstützt und im Fehlerfall eine schnelle Wiederherstellung ermöglicht.
|
||||||
|
|
||||||
@@ -557,8 +557,8 @@ Die technische Umsetzung der LinkedIn-Authentifizierung erfolgte über das integ
|
|||||||
|
|
||||||
Für die Verbindung mit LinkedIn wurde zunächst eine Entwickleranwendung im LinkedIn Developer Portal [@linkedin_auth_flow] erstellt. Dabei werden zwei zentrale Zugangsdaten generiert:
|
Für die Verbindung mit LinkedIn wurde zunächst eine Entwickleranwendung im LinkedIn Developer Portal [@linkedin_auth_flow] erstellt. Dabei werden zwei zentrale Zugangsdaten generiert:
|
||||||
|
|
||||||
• Client ID
|
- Client ID
|
||||||
• Client Secret
|
- Client Secret
|
||||||
|
|
||||||
Diese dienen zur Identifikation der Webanwendung gegenüber den LinkedIn-Servern.
|
Diese dienen zur Identifikation der Webanwendung gegenüber den LinkedIn-Servern.
|
||||||
|
|
||||||
@@ -576,9 +576,9 @@ Zusätzlich wurde eine sogenannte Redirect-URL definiert. Diese URL wird von Lin
|
|||||||
|
|
||||||
In der Konfiguration wurde außerdem festgelegt, welche Benutzerdaten von LinkedIn übernommen werden sollen. Dazu gehören unter anderem:
|
In der Konfiguration wurde außerdem festgelegt, welche Benutzerdaten von LinkedIn übernommen werden sollen. Dazu gehören unter anderem:
|
||||||
|
|
||||||
• Benutzername
|
- Benutzername
|
||||||
• E-Mail-Adresse
|
- E-Mail-Adresse
|
||||||
• eindeutige Benutzer-ID
|
- eindeutige Benutzer-ID
|
||||||
|
|
||||||
Diese Daten werden von Oqtane als sogenannte Claims verarbeitet und anschließend dem Benutzerkonto der Plattform zugeordnet.
|
Diese Daten werden von Oqtane als sogenannte Claims verarbeitet und anschließend dem Benutzerkonto der Plattform zugeordnet.
|
||||||
|
|
||||||
|
|||||||
@@ -106,11 +106,11 @@ Um die Interaktion der Benutzer mit den Modulen zu verdeutlichen, wurden folgend
|
|||||||
|
|
||||||
| ID | Name | Akteur | Beschreibung |
|
| ID | Name | Akteur | Beschreibung |
|
||||||
| :---- | :---------------------- | :----------------- | :----------------------------------------------------------- |
|
| :---- | :---------------------- | :----------------- | :----------------------------------------------------------- |
|
||||||
| UC-01 | Veranstaltung erstellen | Administrator | Ein Administrator legt ein neues Absolvententreffen mit Ort und Datum an. |
|
| 1 | Veranstaltung erstellen | Administrator | Ein Administrator legt ein neues Absolvententreffen mit Ort und Datum an. |
|
||||||
| UC-02 | Zu Event anmelden | Mitglied | Ein Absolvent bestätigt seine Teilnahme an einem Event über die Weboberfläche. |
|
| 2 | Zu Event anmelden | Mitglied | Ein Absolvent bestätigt seine Teilnahme an einem Event über die Weboberfläche. |
|
||||||
| UC-03 | Inhalt melden | Mitglied | Ein Benutzer meldet einen beleidigenden Post am Schwarzen Brett über den "Melden"-Button. |
|
| 3 | Inhalt melden | Mitglied | Ein Benutzer meldet einen beleidigenden Post am Schwarzen Brett über den "Melden"-Button. |
|
||||||
| UC-04 | Meldung bearbeiten | Moderator | Ein Vorstandsmitglied sichtet eine Meldung und löscht den entsprechenden Beitrag. |
|
| 4 | Meldung bearbeiten | Moderator | Ein Vorstandsmitglied sichtet eine Meldung und löscht den entsprechenden Beitrag. |
|
||||||
| UC-05 | Rundmail versenden | Administrator | Der Vorstand erstellt eine Einladung zur Generalversammlung für alle 500 Mitglieder. |
|
| 5 | Rundmail versenden | Administrator | Der Vorstand erstellt eine Einladung zur Generalversammlung für alle 500 Mitglieder. |
|
||||||
|
|
||||||
Table: Wesentliche Use Cases der entwickelten Module
|
Table: Wesentliche Use Cases der entwickelten Module
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user