diff --git a/00_preamble.latex b/00_preamble.latex new file mode 100644 index 0000000..9fce6f0 --- /dev/null +++ b/00_preamble.latex @@ -0,0 +1,104 @@ +\begin{titlepage} +\begin{minipage}[c]{0.25\textwidth} + \includegraphics[width=\textwidth]{images/preamble/szu.png} +\end{minipage} +\hfill +\begin{minipage}[c]{0.7\textwidth} + \raggedleft + \textbf{Schulzentrum HTL HAK Ungargasse} \\ + Höhere Lehranstalt für Informationstechnologie \\ + Ausbildungsschwerpunkt Netzwerktechnik +\end{minipage} +\rule{\textwidth}{0.4pt} + + \vspace{2cm} + + \begin{center} + \includegraphics[width=0.6\textwidth]{images/preamble/logo.png} \\ + \vspace{2cm} + + \textbf{\Huge DIPLOMARBEIT} \\ + \vspace{1cm} + \textbf{\huge AlumniHub} \\ + \vspace{0.5cm} + \textit{\Large Zentrale Plattform für den Absolventenverein des SZ HTL HAK Ungargasse} + \end{center} + + \vspace{2cm} + + \begin{minipage}[t]{0.5\textwidth} + \textbf{Verfasser:} \\ + Adam Gaiswinkler \\ + Florian Edlmayer \\ + Konstantin Hintermayer + \end{minipage} + \begin{minipage}[t]{0.4\textwidth} + \textbf{Betreuer:} \\ + Prof. Thomas Gürth + \end{minipage} + + \vspace{1cm} + + \begin{minipage}[t]{0.5\textwidth} + \textbf{Klasse:} \\ + 5BHITN + \end{minipage} + \begin{minipage}[t]{0.4\textwidth} + \textbf{Schuljahr:} \\ + 2025/26 + \end{minipage} + + \vspace{1cm} + + \begin{minipage}[t]{0.5\textwidth} + \textbf{Abgabevermerk:} \\ + Wien, am 26.03.2026 + \end{minipage} + \begin{minipage}[t]{0.4\textwidth} + \textbf{Projektnummer:} \\ + 3U\_HI\_2026\_04 \\ + \hrulefill + \end{minipage} + + \vspace{0.5cm} + + \textbf{übernommen von:} \\ + \hrulefill +\end{titlepage} + +\newpage +\pagenumbering{Roman} +\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. + +\vspace{1.5cm} + +\begin{tabular}{@{}p{5cm}p{1cm}p{7cm}@{}} +Wien, am 26.03.2026 & & \hrulefill \\ +& & Adam Gaiswinkler +\end{tabular} + +\vspace{1.2cm} + +\begin{tabular}{@{}p{5cm}p{1cm}p{7cm}@{}} +Wien, am 26.03.2026 & & \hrulefill \\ +& & Florian Edlmayer +\end{tabular} + +\vspace{1.2cm} + +\begin{tabular}{@{}p{5cm}p{1cm}p{7cm}@{}} +Wien, am 26.03.2026 & & \hrulefill \\ +& & Konstantin Hintermayer +\end{tabular} + +\newpage +\section*{Kurzfassung} +Die vorliegende Diplomarbeit „AlumniHub“ befasst sich mit der Entwicklung eines zentralen Portals für den Absolventenverein der HTL Ungargasse. Ziel des Projektes ist es, die Kommunikation zwischen dem Verein und seinen Mitgliedern zu digitalisieren und zu vereinfachen. Die Plattform ermöglicht es Absolventinnen und Absolventen, Profile zu erstellen, sich zu vernetzen und Informationen über Vereinsaktivitäten abzurufen. Ein besonderer Fokus lag auf der Integration eines Premium-Bereichs sowie eines sicheren Anmeldesystems über LinkedIn. + +\section*{Abstract} +The diploma thesis "AlumniHub" focuses on the development of a central portal for the alumni association of the HTL Ungargasse. The project aims to digitize and simplify communication between the association and its members. The platform allows alumni to create profiles, network, and retrieve information about association activities. A major focus was the integration of a premium section and a secure authentication system via LinkedIn. + +\newpage +\pagenumbering{arabic} +\setcounter{page}{1} diff --git a/Allgemein.md b/01-Allgemein.md similarity index 100% rename from Allgemein.md rename to 01-Allgemein.md diff --git a/Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md b/02-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md similarity index 100% rename from Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md rename to 02-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md diff --git a/Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md b/03-Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md similarity index 97% rename from Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md rename to 03-Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md index 9529f81..d54cc65 100644 --- a/Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md +++ b/03-Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md @@ -1,42 +1,45 @@ ---- -include_toc: true -gitea: none ---- -# Einleitung des individuellen Teils -## Ausgangssituation +# Florian Edlmayer + +## Einleitung des individuellen Teils + +### Ausgangssituation + Der Absolventenverein der HTL Ungargasse hatte keine digitale Infrastruktur zur Vernetzung seiner Mitglieder. AlumniHub soll das ändern: eine zentrale Plattform für Mitgliederverwaltung, Veranstaltungen und Netzwerkfunktionen. -## Zielsetzung +### Zielsetzung + Mein persönlicher Beitrag umfasst die DSGVO-konforme Datenschutzimplementierung, ein automatisiertes Backup- und Restore-System, die Anbindung von LinkedIn als externem Identitätsanbieter sowie den Premium-Bereich. -## Nutzen für den Absolventenverein +### Nutzen für den Absolventenverein + Für den Verein bedeutet das: rechtskonforme Datenverarbeitung, gesicherte Datenverfügbarkeit und ein niedrigschwelliger Login für Absolventinnen und Absolventen mit bestehendem LinkedIn-Konto. -## Themenstellung +### Themenstellung -### Entwicklung eines CMS-Moduls +#### Entwicklung eines CMS-Moduls • **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. -#### Erstellung einer Datenschutzerklärung +##### Erstellung einer Datenschutzerklärung Eine weitere wichtige Aufgabe war die Erstellung einer gesetzeskonformen Datenschutzerklärung. Diese ist erforderlich, um die Nutzerinnen und Nutzer unserer Webanwendung transparent und verständlich darüber zu informieren, welche personenbezogenen Daten erhoben, verarbeitet und gespeichert werden, zu welchem Zweck dies geschieht und welche Rechte ihnen in Bezug auf ihre Daten zustehen. -### LinkedIn-Anmeldung +#### LinkedIn-Anmeldung Zur Verbesserung der Benutzerfreundlichkeit und zur vereinfachten Anmeldung wird eine Anmeldung über LinkedIn mithilfe des OAuth-2.0-Protokolls implementiert. Diese ermöglicht es Benutzerinnen und Benutzern, sich mit einem bestehenden LinkedIn-Konto zu registrieren oder anzumelden. -### Datenbank-Backup und Restore +#### Datenbank-Backup und Restore Abschließend wurde das Thema Datensicherung umfassend behandelt, da die Sicherstellung der Datenintegrität und Systemverfügbarkeit einen zentralen Bestandteil moderner Webanwendungen darstellt. In diesem Zusammenhang wurde ein Skript zur automatisierten Erstellung von Datenbank-Backups entwickelt, das in regelmäßigen Abständen Sicherungskopien der relevanten Daten erzeugt. Zusätzlich wurde ein weiteres Skript implementiert, das im Falle eines Datenverlusts oder Systemausfalls eine strukturierte und zuverlässige Wiederherstellung der gesicherten Daten ermöglicht. Ziel dieser Maßnahmen ist es, das Risiko von Datenverlusten zu minimieren und einen stabilen sowie sicheren Betrieb der Webanwendung zu gewährleisten. Die Backup- und Restore-Prozesse sollen automatisiert ablaufen, um menschliche Fehler zu reduzieren und eine kontinuierliche, regelmäßige Datensicherung sicherzustellen. Dadurch wird eine hohe Ausfallsicherheit sowie die langfristige Verfügbarkeit der gespeicherten Informationen gewährleistet. -## Detail-Zielsetzungen -### Zielsetzung +### Detail-Zielsetzungen -#### Technische Zielsetzung +#### Zielsetzung + +##### Technische Zielsetzung Die technische Zielsetzung dieses Diplomarbeitsprojekts bestand darin, eine stabile und sichere Webplattform für Alumni zu entwickeln. Als technische Grundlage wurde das Content-Management-System Oqtane verwendet, welches auf modernen Webtechnologien basiert und eine modulare Erweiterung von Funktionen ermöglicht. Die Implementierung erfolgte innerhalb der von Oqtane bereitgestellten Architektur, wodurch verschiedene Funktionen effizient integriert werden konnten. @@ -46,7 +49,7 @@ Zusätzlich wurde eine Datenbank auf Basis von PostgreSQL eingesetzt, um Benutze Ein weiterer wichtiger Aspekt der technischen Zielsetzung war die Einhaltung rechtlicher Anforderungen im Bereich Datenschutz. Daher wurde eine Datenschutzerklärung erstellt und die Plattform so konzipiert, dass personenbezogene Daten der Benutzer entsprechend den Vorgaben der Datenschutz-Grundverordnung verarbeitet werden. -#### Funktionale Zielsetzung +##### Funktionale Zielsetzung Die funktionale Zielsetzung des Projekts bestand darin, eine Onlineplattform zu entwickeln, die ehemaligen Schülerinnen und Schülern die Möglichkeit bietet, miteinander in Kontakt zu bleiben und sich über aktuelle Veranstaltungen zu informieren. Die Plattform dient somit als digitales Netzwerk für Alumni und soll den Austausch zwischen ehemaligen Mitgliedern der Bildungseinrichtung fördern. @@ -58,7 +61,7 @@ Zusätzlich wurde ein Premiumbereich entwickelt, der bestimmte Inhalte oder Funk Durch diese Funktionen entsteht eine Plattform, die nicht nur als Informationsquelle dient, sondern auch aktiv zur Vernetzung der Alumni beiträgt. -#### Gestalterische Zielsetzung +##### Gestalterische Zielsetzung Neben den technischen und funktionalen Anforderungen spielte auch die Gestaltung der Plattform eine wichtige Rolle. Ziel war es, eine übersichtliche und benutzerfreundliche Oberfläche zu entwickeln, die eine einfache Navigation und intuitive Bedienung ermöglicht. @@ -68,15 +71,16 @@ Darüber hinaus wurde darauf geachtet, dass die Plattform ein modernes Erscheinu Insgesamt verfolgt die gestalterische Zielsetzung das Ziel, eine Plattform zu schaffen, die sowohl funktional als auch optisch ansprechend ist und den Benutzern eine positive Nutzungserfahrung bietet. +## Anforderungen an das entwickelte Modul bzw. die Funktionalität -# Anforderungen an das entwickelte Modul bzw. die Funktionalität funktionale / nicht‑funktionale Anforderungen Use Cases -# Technologien +## Technologien + +### ASP.NET und .NET -## ASP.NET und .NET Für die Entwicklung der Webanwendung wurde das Framework ASP.NET in Kombination mit der Plattform .NET verwendet. .NET ist eine von Microsoft entwickelte Entwicklungsplattform zur Erstellung moderner Anwendungen für Web, Desktop, Cloud und mobile Systeme. ASP.NET stellt innerhalb der .NET-Plattform ein Framework dar, das speziell für die Entwicklung von Webanwendungen und Webservices konzipiert wurde. Es bietet eine Vielzahl an Funktionen zur Verarbeitung von HTTP-Anfragen, zur Verwaltung von Benutzersitzungen sowie zur Integration von Datenbanken und externen Diensten. @@ -95,7 +99,8 @@ Ein weiterer Vorteil von ASP.NET besteht in der klar strukturierten Architektur Diese Struktur erleichtert die Wartung und Erweiterung der Anwendung erheblich, da Änderungen gezielt innerhalb einzelner Komponenten vorgenommen werden können. -## PostgreSQL-Datenbank +### PostgreSQL-Datenbank + Zur Speicherung der Daten der Plattform wurde das relationale Datenbanksystem PostgreSQL eingesetzt. PostgreSQL gehört zu den leistungsfähigsten Open-Source-Datenbanken und wird weltweit in vielen professionellen Anwendungen verwendet. Eine relationale Datenbank speichert Informationen in Tabellen, die aus Zeilen und Spalten bestehen. Jede Tabelle repräsentiert eine bestimmte Art von Daten, beispielsweise Benutzer, Veranstaltungen oder Systeminformationen. Beziehungen zwischen Tabellen werden durch sogenannte Schlüssel definiert. @@ -117,14 +122,16 @@ Ein weiterer wichtiger Vorteil besteht darin, dass PostgreSQL sehr gut mit moder Da die Plattform personenbezogene Daten von Benutzern speichert, wurde zusätzlich ein Backup-System implementiert, das regelmäßige Sicherungen der Datenbank erstellt. Dadurch können Daten im Falle eines Fehlers oder eines Systemausfalls wiederhergestellt werden. -## OAuth 2.0 +### OAuth 2.0 + Für die sichere Anmeldung über externe Identitätsanbieter wurde das Protokoll OAuth 2.0 implementiert. OAuth 2.0 ist ein branchenweiter Standard für die Autorisierung, der es Benutzern ermöglicht, Anwendungen von Drittanbietern Zugriff auf ihre Daten zu gewähren, ohne ihre Passwörter für das jeweilige Portal preiszugeben. Im Rahmen dieses Projekts wurde OAuth 2.0 als Authentifizierungsverfahren mit LinkedIn gewählt, um den Registrierungsprozess der Benutzer signifikant zu vereinfachen, da bestehende LinkedIn-Accounts genutzt werden können. Gleichzeitig wird dadurch ein hohes Sicherheitsniveau sichergestellt. -# Module +## Module -## Datenschutz und rechtliche Grundlagen +### Datenschutz und rechtliche Grundlagen + +#### Bedeutung der Datenschutz-Grundverordnung (DSGVO) [^1] -### Bedeutung der Datenschutz-Grundverordnung (DSGVO) [^1] Die Datenschutz-Grundverordnung (DSGVO) ist eine rechtsverbindliche Verordnung der Europäischen Union, die seit dem 25. Mai 2018 unmittelbar in allen EU-Mitgliedstaaten gilt und den Schutz personenbezogener Daten regelt. Sie wurde erlassen, um die Rechte natürlicher Personen bei der Verarbeitung ihrer Daten zu stärken und ein einheitliches Datenschutzniveau innerhalb der EU zu gewährleisten. Der Anwendungsbereich der DSGVO umfasst alle Verarbeitungen personenbezogener Daten, unabhängig davon, ob diese automatisiert oder in nicht-automatisierten Akten erfolgt. Personenbezogene Daten sind dabei definiert als alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person beziehen. @@ -144,7 +151,8 @@ Die DSGVO enthält dabei zentral die Grundsätze der Datenverarbeitung (Art. 5 D 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. -### Umsetzung der Datenschutzanforderungen auf der Website [^2] +#### Umsetzung der Datenschutzanforderungen auf der Website [^2] + Im Rahmen der Diplomarbeit wurde eine umfassende Analyse der Datenschutzanforderungen durchgeführt und entsprechende Maßnahmen zur Umsetzung auf der Website implementiert. Dabei wurden insbesondere die Vorgaben der DSGVO berücksichtigt, um sicherzustellen, dass die Website den geltenden Datenschutzbestimmungen entspricht. Ein zentrales Element der Umsetzung war die Erstellung einer gesetzeskonformen Datenschutzerklärung. Diese informiert die Nutzerinnen und Nutzer über: @@ -165,7 +173,8 @@ Neben der Informationspflicht wurden auch technische und organisatorische Maßna • Regelmäßige Sicherheitsupdates der eingesetzten Software • Minimierung der Datenerhebung auf das Notwendige: Es werden nur die Daten erhoben, die für die Funktion der Website unbedingt erforderlich sind. (Grundprinzip der Datenminimierung nach Art. 5 Abs. 1 lit. c DSGVO) -### Schutz personenbezogener Daten der Benutzer [^3] +#### Schutz personenbezogener Daten der Benutzer [^3] + Der Schutz personenbezogener Daten der Benutzer stellt einen zentralen Bestandteil der Website des Absolventenvereins dar. Sämtliche Datenverarbeitungen erfolgen unter Berücksichtigung der Vorgaben der Datenschutz-Grundverordnung (DSGVO) sowie des österreichischen Datenschutzgesetzes (DSG). Gemäß Art. 5 Abs. 1 lit. c DSGVO gilt der Grundsatz der Datenminimierung, wonach nur jene personenbezogenen Daten erhoben werden dürfen, die für den jeweiligen Zweck erforderlich sind. Auf der Website werden daher ausschließlich solche Daten verarbeitet, die für die Verwaltung der Mitgliedschaft, die Organisation von Veranstaltungen sowie die Kommunikation mit Absolventinnen und Absolventen notwendig sind. @@ -182,16 +191,18 @@ Darüber hinaus besteht das Recht, sich bei der österreichischen Datenschutzbeh Durch die Kombination aus klar definierten Rechtsgrundlagen, transparenten Informationspflichten und technischen Schutzmaßnahmen wird ein hohes Datenschutzniveau gewährleistet und der verantwortungsvolle Umgang mit personenbezogenen Daten sichergestellt. -## Backup & Restore +### Backup & Restore + +#### Notwendigkeit von Datensicherung [^4][^5] -### Notwendigkeit von Datensicherung [^4][^5] Die Datensicherung ist ein wesentlicher Bestandteil der Website des Absolventenvereins. Sie dient dazu, die auf der Website gespeicherten Daten vor Verlust oder Beschädigung zu schützen. Digitale Daten bilden die Grundlage für die Funktion der Website und müssen daher regelmäßig gesichert werden. Ein Verlust oder eine Beschädigung der Daten kann zu erheblichen Problemen führen. Mögliche Ursachen für einen Datenverlust sind unter anderem Hardwaredefekte, Softwarefehler, menschliches Versagen oder Cyberangriffe. Ohne geeignete Sicherheitsmaßnahmen besteht das Risiko, dass Daten unwiederbringlich verloren gehen oder nur mit erheblichen Kosten wiederhergestellt werden können. Neben der technischen besteht ebenfalls eine rechtliche und organisatorische Notwendigkeit der Datensicherung. Gemäß Art. 5 Abs. 1 lit. f DSGVO müssen personenbezogene Daten gesichert werden, um die Integrität und Vertraulichkeit der Daten zu gewährleisten. Dazu zählt auch der Schutz vor unbeabsichtigtem Verlust. Eine Backup-Sicherung ist daher ein notwendiger Schritt, um die Daten vor Verlust zu schützen. -### Konzeption des Backup-Systems +#### Konzeption des Backup-Systems + Ziel des Backup-Systems war es im Falle eines Datenverlustes oder eines Systemausfalls die Daten wiederherstellen zu können. Es wurde eine Strategie entwickelt die es ermöglicht sowohl die Datenbank als auch die Dateien auf dem Server zu sichern. Der Umfang des Backups besteht aus zwei zentralen Komponenten: @@ -299,13 +310,14 @@ Durch diesen Rotationsmechanismus wird verhindert, dass sich im Laufe der Zeit e Die gewählte Anzahl von 30 Sicherungen ermöglicht es, bei täglicher Ausführung des Backup-Skripts ungefähr einen Monat an Wiederherstellungspunkten vorzuhalten. Dadurch wird ein sinnvoller Kompromiss zwischen Datensicherheit und effizienter Speicherverwaltung erreicht. -### Implementierung der Backup-Skripte +#### Implementierung der Backup-Skripte + Die Implementierung des Backup-Systems erfolgte mittels eines Bash-Skripts, das auf dem Linux-Server ausgeführt wird. Bash eignet sich besonders für administrative Aufgaben, da sie direkten Zugriff auf Systembefehle, Dateien und Prozesse bietet. Das Skript wurde so aufgebaut, dass es robust, automatisierbar und nachvollziehbar arbeitet. Zu Beginn des Skripts wird folgende Konfiguration gesetzt: ```bash -#!/usr/bin/env bash +##!/usr/bin/env bash set -euo pipefail ``` @@ -357,14 +369,14 @@ Die Implementierung zeichnet sich durch folgende Eigenschaften aus: 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. -### Wiederherstellung von Daten mittels Restore-Skripten +#### Wiederherstellung von Daten mittels Restore-Skripten Neben der Datensicherung stellt die strukturierte Wiederherstellung der Daten einen zentralen Bestandteil des Backup-Systems dar. Zu diesem Zweck wurde ein eigenes Bash-Skript implementiert, das sowohl die PostgreSQL-Datenbank als auch die Anwendungsdateien aus einem gewählten Backup-Ordner wiederherstellt (Restore-Skript). Ziel war es, einen klar definierten und kontrollierten Prozess zu schaffen, der im Fehlerfall eine vollständige Rücksetzung des Systems ermöglicht. Das Skript beginnt – analog zum Backup-Skript – mit einer sicheren Ausführungskonfiguration: ```bash -#!/usr/bin/env bash +##!/usr/bin/env bash set -euo pipefail ``` @@ -430,7 +442,7 @@ Der Parameter -x extrahiert das Archiv, -p stellt die ursprünglichen Dateiberec Zusammenfassend ermöglicht das Restore-Skript eine vollständige Rücksetzung der Webanwendung auf einen definierten Sicherungsstand. Durch die Kombination aus Sicherheitsabfrage, kontrollierter Datenbank-Neuerstellung und strukturiertem Dateirestore wird ein zuverlässiger und nachvollziehbarer Wiederherstellungsprozess gewährleistet. Das System ergänzt somit das Backup-Konzept um eine praxisnahe und technisch saubere Lösung für den Ernstfall. -### Fazit zur Datensicherung +#### Fazit zur Datensicherung Durch die Implementierung eines automatisierten Backup- und Restore-Systems wurde eine zuverlässige Grundlage für die Datensicherheit der Webanwendung geschaffen. Das entwickelte System ermöglicht eine regelmäßige Sicherung sowohl der PostgreSQL-Datenbank als auch der vollständigen Anwendungsdateien. Durch die automatisierte Ausführung mittels Cronjob wird sichergestellt, dass die Backups ohne manuelles Eingreifen täglich erstellt werden. @@ -440,8 +452,10 @@ Neben der Datensicherung wurde auch ein Restore-Skript implementiert, das eine v Insgesamt stellt das entwickelte Backup-System eine robuste und praxisnahe Lösung dar, die den sicheren Betrieb der Webanwendung unterstützt und im Fehlerfall eine schnelle Wiederherstellung der Daten ermöglicht. -## Benutzerverwaltung und Authentifizierung per LinkedIn -### Authentifizierung mittels OAuth 2.0 +### Benutzerverwaltung und Authentifizierung per LinkedIn + +#### Authentifizierung mittels OAuth 2.0 + Zur Anmeldung auf der entwickelten Webplattform wurde eine Authentifizierung über das Business-Netzwerk LinkedIn implementiert. Dabei kommt das standardisierte Autorisierungsprotokoll OAuth 2.0 zum Einsatz [^6]. Dieses Verfahren ermöglicht es, Benutzer über externe Identitätsanbieter zu authentifizieren, ohne dass deren Zugangsdaten direkt an die Webanwendung übertragen werden müssen. OAuth 2.0 basiert auf dem Prinzip der delegierten Autorisierung. Dabei erlaubt ein Benutzer einer Anwendung, bestimmte Informationen seines Kontos bei einem externen Dienst zu verwenden. Die eigentlichen Zugangsdaten – beispielsweise das LinkedIn-Passwort – verbleiben dabei ausschließlich beim Identitätsanbieter. @@ -456,7 +470,7 @@ Nach der Autorisierung sendet LinkedIn einen solchen Autorisierungscode an die W Der Vorteil dieses Verfahrens liegt darin, dass die Webanwendung zu keinem Zeitpunkt Zugriff auf das Passwort des Benutzers erhält. Dadurch wird ein höheres Sicherheitsniveau erreicht und gleichzeitig die Benutzerfreundlichkeit verbessert, da sich Benutzer mit ihrem bestehenden LinkedIn-Konto anmelden können. -### Technische Umsetzung der LinkedIn-Anmeldung in Oqtane +#### Technische Umsetzung der LinkedIn-Anmeldung in Oqtane Die technische Umsetzung der LinkedIn-Authentifizierung erfolgte über das integrierte External Login System [^8] des Content-Management-Systems Oqtane. Dieses System ermöglicht die Integration externer Identitätsanbieter über standardisierte Protokolle wie OAuth 2.0. @@ -489,7 +503,7 @@ Diese Daten werden von Oqtane als sogenannte Claims verarbeitet und anschließen Darüber hinaus wurde in den Einstellungen aktiviert, dass bei der ersten Anmeldung automatisch ein neues Benutzerkonto erstellt werden kann. Dadurch können sich neue Nutzer direkt über ihr LinkedIn-Konto registrieren. -### Ablauf des Anmeldeprozesses +#### Ablauf des Anmeldeprozesses Der eigentliche Anmeldevorgang erfolgt in mehreren aufeinanderfolgenden Schritten. Zunächst wählt der Benutzer auf der Login-Seite der Webplattform die Option zur Anmeldung über LinkedIn aus. @@ -499,8 +513,10 @@ Nach erfolgreicher Authentifizierung sendet LinkedIn eine Antwort an die zuvor d Wie in Abschnitt 4.3.1 beschrieben, werden die abgerufenen Profildaten zur Identifikation oder Neuanlage des Benutzerkontos in der lokalen Datenbank verwendet. -## Implementierung des Premium-Bereichs -### Ziel und Zweck des Premium-Bereichs +### Implementierung des Premium-Bereichs + +#### Ziel und Zweck des Premium-Bereichs + Der Premium-Bereich wurde mit dem Ziel entwickelt, den Mitgliedern des SZU Absolventenvereins einen klar abgegrenzten, exklusiven Bereich innerhalb der Vereinswebsite bereitzustellen. Das Premium-Bereich-Modul ist eine Erweiterung für das Content-Management-System Oqtane und bildet das Kernstück des digitalen Mitgliederbereichs. Es ermöglicht Mitgliedern, sich über das Hochladen eines Ingenieur-Antrags als PDF-Dokument für eine zeitlich begrenzte Premium-Mitgliedschaft zu qualifizieren. Premium-Mitglieder erhalten Zugang zu exklusiven Funktionen wie dem Einsehen genehmigter Anträge anderer Mitglieder sowie einer Mitgliedersuche mit integrierter Kontaktfunktion. Der zentrale Zweck besteht darin, einen Anreiz für aktives Engagement im Verein zu schaffen. Dadurch entsteht ein Kreislauf, in dem qualitativ hochwertige Anträge die Wissensbasis der Gemeinschaft bereichern und gleichzeitig den einreichenden Mitgliedern einen konkreten Gegenwert in Form von Premium-Funktionen bieten. Der Premium-Bereich dient darüber hinaus als digitales Netzwerk-Instrument. Durch die Kombination aus Antrags-Einsicht, Mitgliedersuche und Kontaktfunktion wird eine Plattform geschaffen, die den fachlichen Austausch zwischen Absolventen fördert und die Vernetzung innerhalb der Gemeinschaft stärkt. Die zeitliche Begrenzung der Premium-Mitgliedschaft auf 12 Monate sorgt dafür, dass Mitglieder regelmäßig aktiv bleiben und neue Inhalte beitragen, um ihren Premium-Status aufrechtzuerhalten. @@ -532,7 +548,8 @@ graph TD style Data fill:#f1f8e9,stroke:#33691e ``` -### Funktionalität und Features des Premium-Bereichs +#### Funktionalität und Features des Premium-Bereichs + Der Premium-Bereich umfasst mehrere miteinander verknüpfte Funktionen, die gemeinsam ein geschlossenes System bilden. **Ingenieur-Antrags-Workflow** @@ -707,7 +724,8 @@ public class AddPremiumTables : MultiDatabaseMigration Insgesamt definieren vier Migrationen die Datenbankstruktur: Die erste erstellt die Basistabelle des Moduls, die zweite fügt die drei Tabellen für Ingenieur-Anträge, Premium-Status und Premium-Events hinzu, die dritte entfernt nicht mehr benötigte Spalten nach der Umstellung auf den Oqtane FileManager, und die vierte ergänzt die Felder für Titel und Kurzbeschreibung. Alle Migrationen werden bei der Modulinstallation automatisch ausgeführt. -### Zugriffsbeschränkung und Benutzerrechte +#### Zugriffsbeschränkung und Benutzerrechte + Der Zugriff auf den Premium-Bereich wird durch ein mehrstufiges Berechtigungssystem gesteuert, das sowohl auf Server- als auch auf Client-Seite durchgesetzt wird. Die verfügbaren Berechtigungen werden in der `ModuleInfo`-Klasse registriert: ```C# @@ -781,7 +799,8 @@ Zuerst wird die Oqtane-Rollenzugehörigkeit geprüft, anschließend der datenban Die Zugriffsbeschränkung wird konsequent auf beiden Seiten durchgesetzt: Clientseitig entscheidet die Blazor-Komponente anhand der Benutzerrolle, welche UI-Elemente angezeigt werden. Serverseitig prüft jeder Service-Aufruf die Berechtigung des anfragenden Benutzers über das `[Authorize]`-Attribut mit Policies wie `PolicyNames.ViewModule` und `PolicyNames.EditModule`, bevor Daten zurückgegeben oder Änderungen vorgenommen werden. Dadurch wird sichergestellt, dass selbst bei einer Manipulation der Client-Anfrage keine unberechtigten Zugriffe möglich sind. -### Mehrwert für registrierte Mitglieder +#### Mehrwert für registrierte Mitglieder + Der Premium-Bereich schafft einen konkreten Mehrwert für registrierte Mitglieder auf mehreren Ebenen. Auf fachlicher Ebene entsteht durch die gesammelten Ingenieur-Anträge eine wachsende Wissensbasis, die allen Premium-Mitgliedern zugänglich ist. Absolventen können von den Arbeiten anderer Mitglieder lernen, sich inspirieren lassen und fachliche Ansätze vergleichen. Durch die Möglichkeit, Titel und Kurzbeschreibungen zu hinterlegen, können Mitglieder gezielt nach relevanten Themen suchen, ohne jedes PDF-Dokument einzeln öffnen zu müssen. Auf sozialer Ebene fördert der Premium-Bereich die Vernetzung innerhalb der Absolventengemeinschaft. Die Mitgliedersuche mit integrierter Kontaktfunktion ermöglicht es, gezielt nach ehemaligen Kommilitonen oder Fachkollegen zu suchen und direkt Kontakt aufzunehmen. Der duale Benachrichtigungsmechanismus — bestehend aus In-App-Nachricht und E-Mail — stellt sicher, dass Kontaktanfragen zuverlässig zugestellt werden und kein Mitglied eine Nachricht verpasst. @@ -790,8 +809,10 @@ Auf motivationaler Ebene bietet das zeitlich begrenzte Premium-System einen Anre Der Datenschutz wird dabei konsequent gewahrt. Die Mitgliedersuche gibt nur ausgewählte, nicht-sensible Informationen wie Anzeigenamen und Benutzernamen zurück. E-Mail-Adressen und andere persönliche Daten werden serverseitig herausgefiltert und sind für andere Mitglieder nicht einsehbar. Die Kontaktaufnahme erfolgt ausschließlich über das plattformeigene Benachrichtigungssystem, sodass kein Mitglied seine persönlichen Kontaktdaten preisgeben muss. -# Learnings -## Technische und fachliche Erkenntnisse +## Learnings + +### Technische und fachliche Erkenntnisse + Während der Umsetzung meiner Diplomarbeit konnte ich umfangreiche technische Erfahrungen in der Entwicklung moderner Webanwendungen sammeln. Ein zentraler Bestandteil der Arbeit war die Implementierung einer Alumni-Plattform, die ehemaligen Studierenden eine Möglichkeit bietet, sich zu vernetzen, Profile zu verwalten und sich für Veranstaltungen anzumelden. Ein wesentlicher Lernaspekt war die praktische Anwendung des Webframeworks ASP.NET auf Basis der Plattform .NET 8. Dabei konnte ich ein tieferes Verständnis für die Architektur moderner Webanwendungen entwickeln. Besonders wichtig war das Zusammenspiel zwischen Backend-Logik, Datenbankzugriff und Benutzeroberfläche. Durch die Entwicklung verschiedener Funktionen, wie beispielsweise Eventverwaltung, Benutzerprofile und Premiumbereiche, wurde deutlich, wie wichtig eine klare Strukturierung der Anwendung ist. @@ -803,7 +824,9 @@ Ein weiterer wichtiger Bestandteil der Arbeit war die Integration eines externen Zusätzlich wurden Funktionen im Bereich Datenschutz umgesetzt, die den Anforderungen der DSGVO entsprechen. Dazu zählen unter anderem Möglichkeiten zur Verwaltung personenbezogener Daten sowie automatisierte Löschmechanismen. Diese Aspekte haben mir gezeigt, wie wichtig Datenschutz und rechtliche Anforderungen bei der Entwicklung moderner Webanwendungen sind. Insgesamt konnte ich durch die praktische Umsetzung der Plattform ein deutlich tieferes Verständnis für Webtechnologien, Systemarchitekturen und Backend-Entwicklung gewinnen. -## Agile Projektarbeit und Teamarbeit (Zeitmanagement) + +### Agile Projektarbeit und Teamarbeit (Zeitmanagement) + Neben den technischen Aspekten konnte ich auch wichtige Erfahrungen im Bereich der agilen Projektarbeit sammeln. Für die Organisation des Projekts wurde das agile Framework Scrum eingesetzt. Die Arbeit wurde in Sprints von jeweils zwei Wochen unterteilt. Innerhalb eines Sprints wurden konkrete Aufgaben definiert, die bis zum Ende des Zeitraums umgesetzt werden sollten. Diese Struktur ermöglichte eine klare Planung der Arbeitsschritte und half dabei, größere Entwicklungsaufgaben in kleinere, überschaubare Teilaufgaben zu unterteilen. @@ -815,7 +838,9 @@ Auch das Zeitmanagement spielte eine zentrale Rolle. Da die Entwicklung der Plat Darüber hinaus zeigte sich, dass agile Methoden besonders gut für Softwareprojekte geeignet sind, da sie flexible Anpassungen während der Entwicklung ermöglichen. Neue Anforderungen oder Verbesserungen konnten relativ einfach in zukünftige Sprints integriert werden. Diese Erfahrungen haben mir ein besseres Verständnis für moderne Softwareentwicklungsprozesse vermittelt und gezeigt, wie wichtig strukturierte Planung und kontinuierliche Verbesserung in technischen Projekten sind. -## Persönliche Weiterentwicklung + +### Persönliche Weiterentwicklung + Neben den technischen und organisatorischen Erkenntnissen stellte die Diplomarbeit auch eine wichtige persönliche Weiterentwicklung dar. Die eigenständige Planung und Umsetzung eines komplexen Softwareprojekts erforderte ein hohes Maß an Selbstorganisation und Durchhaltevermögen. Während der Entwicklung der Alumni-Plattform musste ich regelmäßig neue Technologien und Konzepte erlernen. Dazu gehörten unter anderem Webframeworks, Datenbanksysteme, Authentifizierungsprotokolle sowie Aspekte der IT-Sicherheit und des Datenschutzes. Der Umgang mit diesen Technologien hat meine Fähigkeiten im Bereich der Softwareentwicklung deutlich erweitert. @@ -825,9 +850,11 @@ Darüber hinaus lernte ich, technische Probleme systematisch zu analysieren und Ein weiterer wichtiger Lernaspekt war die Verbesserung meiner Fähigkeiten im Bereich der Dokumentation. Die Erstellung eines Diplomarbeitsbuchs erfordert eine strukturierte und verständliche Beschreibung technischer Inhalte. Dadurch konnte ich lernen, komplexe technische Zusammenhänge klar und nachvollziehbar darzustellen. Zusammenfassend hat mir die Diplomarbeit nicht nur tiefere technische Kenntnisse vermittelt, sondern auch meine Fähigkeiten im Bereich Problemlösung, Selbstorganisation und Projektplanung gestärkt. Diese Kompetenzen stellen eine wichtige Grundlage für zukünftige berufliche Tätigkeiten im Bereich der Softwareentwicklung dar. -# Fazit und Ausblick -## Zusammenfassung der Arbeit +## Fazit und Ausblick + +### Zusammenfassung der Arbeit + Ziel dieser Diplomarbeit war die Konzeption und Entwicklung einer webbasierten Alumni-Plattform für den Absolventenverein. Die Plattform soll ehemaligen Studierenden ermöglichen, miteinander in Kontakt zu bleiben, Informationen auszutauschen und an Veranstaltungen des Vereins teilzunehmen. Dadurch wird die Kommunikation zwischen Absolventinnen und Absolventen sowie der Bildungseinrichtung langfristig gestärkt. Im Rahmen der Arbeit wurde eine moderne Webanwendung entwickelt, die auf dem Framework ASP.NET und der Plattform .NET 8 basiert. Die Speicherung der Daten erfolgt in der relationalen Datenbank PostgreSQL, welche eine strukturierte Verwaltung der Benutzerdaten, Eventinformationen und Systemdaten ermöglicht. @@ -839,7 +866,9 @@ Neben der Benutzerverwaltung wurden auch weitere Funktionen umgesetzt. Dazu zäh Die Entwicklung der Plattform erfolgte nach agilen Prinzipien mithilfe des Scrum-Frameworks. Die Arbeit wurde in mehrere zweiwöchige Sprints unterteilt, wodurch eine strukturierte und iterative Entwicklung der einzelnen Funktionen möglich war. Zusammenfassend konnte mit der Diplomarbeit eine funktionale und erweiterbare Plattform entwickelt werden, die eine moderne Grundlage für die digitale Vernetzung von Alumni darstellt. -## Mögliche Erweiterungen der Website + +### Mögliche Erweiterungen der Website + Obwohl bereits viele grundlegende Funktionen implementiert wurden, bietet die Plattform weiteres Potenzial für zukünftige Erweiterungen und Verbesserungen. Eine mögliche Erweiterung wäre beispielsweise die Integration eines internen Nachrichtensystems. Dadurch könnten Alumni direkt über die Plattform miteinander kommunizieren und Kontakte einfacher pflegen. Ebenso wäre die Implementierung eines Forums oder einer Diskussionsplattform denkbar, in der Mitglieder Erfahrungen austauschen oder berufliche Themen diskutieren können. @@ -859,7 +888,9 @@ Integration weiterer Social-Media-Plattformen erweiterte Such- und Filterfunktionen für Alumni-Profile Durch diese Erweiterungen könnte die Plattform langfristig noch attraktiver und vielseitiger gestaltet werden. -## Zukunftspotenzial für den Absolventenverein + +### Zukunftspotenzial für den Absolventenverein + Die entwickelte Alumni-Plattform bietet dem Absolventenverein eine moderne digitale Infrastruktur zur Verwaltung und Vernetzung seiner Mitglieder. Durch die zentrale Plattform können Informationen, Veranstaltungen und Kontakte effizient organisiert werden. Ein wesentlicher Vorteil besteht darin, dass der Verein seine Mitglieder dauerhaft an die Institution binden kann. Ehemalige Studierende haben die Möglichkeit, weiterhin mit ihrer Ausbildungsstätte und anderen Absolventinnen und Absolventen in Verbindung zu bleiben. Dies stärkt das Netzwerk des Vereins und kann langfristig auch neue Kooperationen oder berufliche Kontakte ermöglichen. @@ -869,7 +900,8 @@ Darüber hinaus kann die Plattform auch zur Organisation von Veranstaltungen gen Langfristig kann die Plattform zu einem zentralen digitalen Treffpunkt für Absolventinnen und Absolventen werden. Besonders im beruflichen Umfeld kann ein starkes Alumni-Netzwerk einen großen Mehrwert bieten, beispielsweise durch den Austausch von Erfahrungen oder beruflichen Möglichkeiten. Insgesamt besitzt die entwickelte Plattform ein großes Zukunftspotenzial. Durch kontinuierliche Erweiterungen und die aktive Nutzung durch die Mitglieder kann sie zu einem wichtigen Instrument für die Vernetzung und Weiterentwicklung des Absolventenvereins werden. -# Quellenverzeichnis + +## Quellenverzeichnis [^1]: DSGVO – Datenschutz-Grundverordnung: https://eur-lex.europa.eu/eli/reg/2016/679/ [Zugriff: 19.03.2026] @@ -879,7 +911,7 @@ Insgesamt besitzt die entwickelte Plattform ein großes Zukunftspotenzial. Durch [^4]: Datensicherung und Datenverlust: https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Informationen-und-Empfehlungen/Cyber-Sicherheitsempfehlungen/Daten-sichern-verschluesseln-und-loeschen/Datensicherung-und-Datenverlust/Datensicherung-wie-geht-das/datensicherung-wie-geht-das_node.html [Zugriff: 19.03.2026] -[^5]: BSI – Bundesamt für Sicherheit in der Informationstechnik: *IT-Grundschutz-Kompendium – CON.3: Datensicherungskonzept.* URL: https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/Kompendium/IT_Grundschutz_Kompendium_Edition2023.pdf [Zugriff: 19.03.2026] +[^5]: BSI – Bundesamt für Sicherheit in der Informationstechnik: _IT-Grundschutz-Kompendium – CON.3: Datensicherungskonzept._ URL: https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/Kompendium/IT_Grundschutz_Kompendium_Edition2023.pdf [Zugriff: 19.03.2026] [^6]: IETF RFC 6749 – The OAuth 2.0 Authorization Framework: https://datatracker.ietf.org/doc/html/rfc6749 [Zugriff: 19.03.2026] diff --git a/Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md b/04-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md similarity index 99% rename from Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md rename to 04-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md index 2e0b7b1..986def1 100644 --- a/Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md +++ b/04-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md @@ -516,3 +516,5 @@ Lösungsansatz: Meetings und Besprechungen asynchron zueinander setzen. - Asynchrone Daily-Updates: Statusberichte erfolgen schriftlich (z. B. in Gitea Issues oder YouTrack), nicht mehr in stundenlangen Call-Marathons. Das nimmt den zeitlichen Druck vom einzelnen Entwickler. Oder zumindest in kurzen Commitnachrichten, welche am Ende des Tages automatisch an alle Teammitglieder zum Überblick gesendet werden (eventuell mit \@username tagging, um eine Person nochmal genau anzusprechen) - Review-First-Policy: Ein Feature gilt erst dann als „fertig“, wenn es einen asynchronen Code-Review-Prozess durchlaufen hat. Das Meeting dient nur noch der Klärung von Blockern, nicht der Präsentation von Code. Das war eigentlich schon von Anfang an in unserer `Definition of Done` festgelegt worden. - Entkoppelung von Meeting und Deadline: Meetings sollten der Synchronisation dienen, während die Abgabe von Arbeitspaketen kontinuierlich (Continuous Integration) erfolgen muss, um Lastspitzen (in der [Gitea Actions](#Continuous Integration) Pipeline) am Tag der Besprechung zu vermeiden. + +\pagebreak diff --git a/bibliographie.md b/99-bibliographie.md similarity index 100% rename from bibliographie.md rename to 99-bibliographie.md diff --git a/images/preamble/logo.png b/images/preamble/logo.png new file mode 100644 index 0000000..d5c1716 Binary files /dev/null and b/images/preamble/logo.png differ diff --git a/images/preamble/szu.png b/images/preamble/szu.png new file mode 100644 index 0000000..64fbc7c Binary files /dev/null and b/images/preamble/szu.png differ diff --git a/pandoc-cmd.sh b/pandoc-cmd.sh index 95c383b..ffcce64 100755 --- a/pandoc-cmd.sh +++ b/pandoc-cmd.sh @@ -1,10 +1,10 @@ #!/bin/bash pandoc \ - Allgemein.md \ - Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md \ - Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md \ - Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md \ - bibliographie.md \ + 01-Allgemein.md \ + 02-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md \ + 03-Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md \ + 04-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md \ + 99-bibliographie.md \ --toc \ --toc-depth=3 \ --number-sections \ @@ -12,7 +12,9 @@ pandoc \ --syntax-definition razor.xml \ --citeproc \ --bibliography sources.bib \ + --include-before-body=00_preamble.latex \ -V geometry:margin=2cm \ + -V toc-title="Inhaltsverzeichnis" \ -H header.tex \ --lof \ -o diplomarbeitsbuch.pdf \ No newline at end of file