Compare commits

...

9 Commits

Author SHA1 Message Date
6b0c4f7884 Update: Tag
Some checks failed
build-debian-package / Build the debian package (push) Failing after 14s
Word Count / count-words (push) Failing after 40s
2026-04-16 19:13:54 +02:00
ad47997aab New: Pandoc pipeline
Some checks failed
Word Count / count-words (push) Failing after 43s
2026-04-16 19:12:42 +02:00
b337833410 New: use Fork 2026-04-16 19:11:50 +02:00
69d898bc86 Adam Part changes
Some checks failed
Word Count / count-words (push) Failing after 38s
2026-04-16 17:35:03 +02:00
29fda2257b From TD to LR
Some checks failed
Word Count / count-words (push) Failing after 33s
2026-04-16 17:31:41 +02:00
caedd3ba9e Merge branch 'main' of https://git.kocoder.xyz/Diplomarbeit-Absolventenverein/pm
Some checks failed
Word Count / count-words (push) Failing after 36s
2026-04-16 17:30:06 +02:00
710667481b Überarbeitung 2026-04-16 17:29:57 +02:00
2e4353bf8e Update: submodule
Some checks failed
Word Count / count-words (push) Failing after 36s
2026-04-16 16:57:17 +02:00
a38cbd0dfe Refinements des Layouts und individueller Teil Konstantin 2026-04-16 16:56:34 +02:00
10 changed files with 146 additions and 36 deletions

View File

@@ -0,0 +1,28 @@
name: build-debian-package
on:
push:
tags:
- "doc-*"
jobs:
build:
name: Build the debian package
runs-on: ubuntu-latest
steps:
- name: "Git clone"
run: git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git .
- name: "Git checkout"
run: git checkout "${{ gitea.sha }}"
- name: "Submodules auschecken"
run: git submodule update --init
- name: "Install dependencies"
run: sudo apt-get install pandoc
- name: "Build .deb"
run: cd ./Defensio && ./pandoc.sh
- name: "Create release"
uses: akkuman/gitea-release-action@v1
with:
files: |-
./Defensio/defensio.pdf

2
.gitmodules vendored
View File

@@ -1,6 +1,6 @@
[submodule "Defensio/libs/awesome-beamer"] [submodule "Defensio/libs/awesome-beamer"]
path = Defensio/libs/awesome-beamer path = Defensio/libs/awesome-beamer
url = https://codeberg.org/LukasPietzschmann/awesome-beamer url = https://git.kocoder.xyz/kocoded/awesome-beamer
[submodule "Defensio/libs/smile"] [submodule "Defensio/libs/smile"]
path = Defensio/libs/smile path = Defensio/libs/smile
url = https://codeberg.org/LukasPietzschmann/smile url = https://codeberg.org/LukasPietzschmann/smile

View File

@@ -2,6 +2,17 @@
\providecommand{\tightlist}{% \providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\makeatletter
\newsavebox\pandoc@box
\newcommand*\pandocbounded[1]{% scales image to fit the slide if it's too large
\sbox\pandoc@box{#1}%
\ifdim\wd\pandoc@box>\linewidth
\makebox[\linewidth][c]{\resizebox{\linewidth}{!}{\usebox\pandoc@box}}%
\else
\usebox\pandoc@box
\fi
}
\makeatother
\usepackage[T1]{fontenc} \usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
@@ -12,7 +23,11 @@
\newcommand{\imagepath}{Images} \newcommand{\imagepath}{Images}
\definecolor{orange}{HTML}{f87a01} \definecolor{orange}{HTML}{f87a01}
\usetheme[german, color, coloraccent=orange]{awesome} \usetheme[german, color, coloraccent=orange, notoc]{awesome}
\makeatletter
\newcommand{\nonumberson}{\awesome@nonumbersinframetitletrue}
\newcommand{\nonumbersoff}{\awesome@nonumbersinframetitlefalse}
\makeatother
% \usepackage{firamath-otf} % \usepackage{firamath-otf}
\usepackage{pgfplots} \usepackage{pgfplots}
@@ -57,21 +72,32 @@
\institute{Schulzentrum HTL HAK Ungargasse} \institute{Schulzentrum HTL HAK Ungargasse}
\uni{Schulzentrum HTL HAK Ungargasse} \uni{Schulzentrum HTL HAK Ungargasse}
\location{Wien} \location{Wien}
\background{background.png} \background{./Images/images/background/title-slide/background.png}
\logo{\includegraphics[width=3cm]{\imagepath/images/logos/logo.png}} \logo{\includegraphics[width=3cm]{\imagepath/images/logos/logo.png}}
\date\today \date{22. April 2026}
\AtBeginSection[] \AtBeginSection[]
{ {
\begingroup
\nonumberson
\begin{frame}[noframenumbering,plain]{Agenda} \begin{frame}[noframenumbering,plain]{Agenda}
\tableofcontents[currentsection, hideothersubsections] \tableofcontents[currentsection]
\end{frame} \end{frame}
\endgroup
} }
\begin{document} \begin{document}
\maketitle \maketitle
\begingroup
\nonumberson
\begin{frame}[noframenumbering,plain]{Agenda}
\tableofcontents
\end{frame}
\endgroup
$body$ $body$
\end{document} \end{document}

View File

@@ -2,7 +2,37 @@
## Rolle im Projekt ## Rolle im Projekt
## Infrastruktur & CI/CD ::: columns
:::: column
Aufgabenbereiche:
- Infrastruktur & CI/CD
- Product Owner
- Kundenschnittstelle
- Softwareentwicklung:
- Event Registration
- Black Board
- Report System
- Mass Mailer
::::
:::: column
\begin{tikzpicture}
\clip (0,0) circle (3em);
\node at (0,0) {\includegraphics[width=6em]{./Images/images/konstantin/profile.jpg}};
\draw[accent, line width=3pt] (0,0) circle (3em);
\end{tikzpicture}
::::
:::
## Infrastruktur
::: columns
:::: column
Systemaufbau: Systemaufbau:
@@ -11,18 +41,47 @@ Systemaufbau:
- NginX - NginX
- Asp.Net Core - Asp.Net Core
::::
:::: column
Entwicklungsumgebung:
- Gitea Server
- Wireguard
- Docker
- Transfer: GitHub
- Gitea Actions
::::
:::
## CI/CD
CI: CI:
- Gitea Actions - Gitea Actions
- Debian Packages (.deb) - Debian Packages (.deb)
- Code-Reviewing:
- KI
- Git-Flow
## Softwarearchitektur ## Softwarearchitektur
- Open-Closed Principle - Open-Closed Principle
- Strategy Pattern
- Dependency Injection - Dependency Injection
## Technischer Vergleich ## Technischer Vergleich
Bisherige Erfahrungen:
- Go
- Typescript
- GRPC (interprozess Kommunikation)
Untersuchungsgebiete:
- Typisierung - Typisierung
- Konsistenz - Konsistenz
@@ -39,3 +98,5 @@ right
:::: ::::
::: :::
## Fazit

View File

@@ -18,12 +18,10 @@
--- ---
## Eingesetzte Technologien ## Eingesetzte Technologien
- **Backend & Core**: C#, ASP.NET Core
- **Frontend**: Blazor (für interaktive Weboberflächen direkt in C#)
- **CMS**: Oqtane Framework
- **Styling**: Bootstrap & Custom CSS - **Styling**: Bootstrap & Custom CSS
- **Spezielle Tools**: QuestPDF (PDF-Generierung), Gitea (Versionskontrolle) - **Spezielle Tools**: QuestPDF (PDF-Generierung), Gitea (Versionskontrolle)
- **Entwicklungsumgebung**: Visual Studio 2022 & JetBrains Rider (macOS) - **Entwicklungsumgebung**: Visual Studio 2022 & Visual Studio Code (macOS)
--- ---
@@ -31,7 +29,7 @@
- **Ziel**: Modernes, schlichtes Design im Stil der HTL Ungargasse (szu.at). - **Ziel**: Modernes, schlichtes Design im Stil der HTL Ungargasse (szu.at).
- **Technische Highlights**: - **Technische Highlights**:
- Vollständige Eigenentwicklung der Navigationslogik (über `PageState.Pages`). - Vollständige Eigenentwicklung der Navigationslogik (über `PageState.Pages`).
- Dynamisches Ausblenden von Systemseiten via LINQ. - **Dynamisches Ausblenden von Systemseiten via LINQ**.
- **Responsive Design**: Einsatz von CSS Media Queries und einer komplett CSS-basierten Burger-Menü-Lösung. - **Responsive Design**: Einsatz von CSS Media Queries und einer komplett CSS-basierten Burger-Menü-Lösung.
- Integration eines `ControlPanels` und Cookie-Consent. - Integration eines `ControlPanels` und Cookie-Consent.
@@ -53,8 +51,7 @@
- **PDF-Export**: Dynamische Generierung eines ansprechenden Profil-PDFs mittels *QuestPDF*. - **PDF-Export**: Dynamische Generierung eines ansprechenden Profil-PDFs mittels *QuestPDF*.
- **Moderation**: - **Moderation**:
- Integriertes Meldesystem (Reporting) direkt über ein separates Interfaces-Paket angesteuert. - Integriertes Meldesystem (Reporting) direkt über ein separates Interfaces-Paket angesteuert.
- **Datenbank & Persistenz**:
- Entity Framework Core inkl. Migrationen (`HallOfFame` und `HallOfFameReport` Tabellen).
--- ---
@@ -74,7 +71,7 @@
- **Zeitdruck & Infrastruktur-Ausfälle**: - **Zeitdruck & Infrastruktur-Ausfälle**:
- Probleme mit Hosting (Hetzner). - Probleme mit Hosting (Hetzner).
- **Lösung**: Entwicklung einer schlanken "Übergangslösung" (Node.js/HTML) im Sommer 2025 zur zeitgerechten Event-Abwicklung. - **Lösung**: Entwicklung einer schlanken "Übergangslösung" (Node.js/HTML) im Sommer 2025 zur zeitgerechten Event-Abwicklung.
- **Entity Framework Concurrency Issues**: Gelöst durch Transaktions-Gliederung bei Löschvorgängen (Reports vs. Main Entity).
--- ---
@@ -85,11 +82,11 @@
--- ---
## Fazit & Ausblick ## Fazit & Mögliche Erweiterungen
- **Erreichtes**: - **Erreichtes**:
- Theme ist final in Oqtane integriert und mobil optimiert. - Theme ist final in Oqtane integriert und mobil optimiert.
- Hall of Fame und Anmeldetool sind voll funktionstüchtig. - Hall of Fame und Anmeldetool sind voll funktionstüchtig.
- **Ausblick**: - **Mögliche Erweiterungen**:
- Integration einer umfassenden Teilnehmerlisten-Auswertung (Datenbank). - Integration einer umfassenden Teilnehmerlisten-Auswertung (Datenbank).
- Limit-Funktion für maximale Anmeldungen bei Veranstaltungen. - Limit-Funktion für maximale Anmeldungen bei Veranstaltungen.
- Automatische E-Mail-Erinnerungen für Events. - Automatische E-Mail-Erinnerungen für Events.

View File

@@ -40,7 +40,7 @@
- **Lösung**: Vollautomatisiertes Backup-Skript. - **Lösung**: Vollautomatisiertes Backup-Skript.
```mermaid ```mermaid
graph TD graph LR
Start((Start: Cronjob 02:30)) --> Init[Initialisierung] Start((Start: Cronjob 02:30)) --> Init[Initialisierung]
Init --> Vars[Konfiguration laden] Init --> Vars[Konfiguration laden]
@@ -82,22 +82,20 @@ graph TD
- Abbau von Registrierungshürden. - Abbau von Registrierungshürden.
- Keine sensiblen Passwörter im eigenen System. - Keine sensiblen Passwörter im eigenen System.
![Ablauf der OAuth-Authentifizierung (Erstellt mit ChatGPT)](../Diplomarbeitsbuch/images/04-Florian/oauth-flow.png) ![Ablauf der OAuth-Authentifizierung](Images/oauth-flow-new.png)
--- ---
## Der Premium-Bereich (1) ## Der Premium-Bereich (1)
- **Zweck**: Motivation für aktives Mitglieder-Engagement. **Zweck**: Motivation für aktives Mitglieder-Engagement.
**Ingenieur-Antrags-Workflow & Prüfung:** ![](../Diplomarbeitsbuch/images/04-Florian/ingenieur-antrag-status.png){width=20em}
![Formular zum Einreichen eines Ingenieur-Antrags](../Diplomarbeitsbuch/images/04-Florian/ingenieur-antrag-status.png)
**Bibliothek genehmigter Vorzeige-Anträge:** ![](../Diplomarbeitsbuch/images/04-Florian/ingenieur-antraege-liste.png){width=20em}
![Ansicht der genehmigten Ingenieur-Anträge](../Diplomarbeitsbuch/images/04-Florian/ingenieur-antraege-liste.png)
--- ---
# Der Premium-Bereich (2) ## Der Premium-Bereich (2)
**Architektur des Premium-Bereich-Moduls:** **Architektur des Premium-Bereich-Moduls:**
```mermaid ```mermaid
graph LR graph LR

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB