Compare commits
8 Commits
9aad0c5394
...
0.0.0-0
| Author | SHA1 | Date | |
|---|---|---|---|
| ad47997aab | |||
| b337833410 | |||
| 69d898bc86 | |||
| 29fda2257b | |||
| caedd3ba9e | |||
| 710667481b | |||
| 2e4353bf8e | |||
| a38cbd0dfe |
28
.gitea/workflows/create-presentation.yml
Normal file
28
.gitea/workflows/create-presentation.yml
Normal 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
2
.gitmodules
vendored
@@ -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
|
||||||
|
|||||||
@@ -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}
|
||||||
@@ -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
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 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:**
|
{width=20em}
|
||||||

|
|
||||||
|
|
||||||
**Bibliothek genehmigter Vorzeige-Anträge:**
|
{width=20em}
|
||||||

|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Der Premium-Bereich (2)
|
## Der Premium-Bereich (2)
|
||||||
**Architektur des Premium-Bereich-Moduls:**
|
**Architektur des Premium-Bereich-Moduls:**
|
||||||
```mermaid
|
```mermaid
|
||||||
graph LR
|
graph LR
|
||||||
|
|||||||
BIN
Defensio/Images/images/background/title-slide/background.png
Normal file
BIN
Defensio/Images/images/background/title-slide/background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 132 KiB |
BIN
Defensio/Images/images/konstantin/profile.jpg
Normal file
BIN
Defensio/Images/images/konstantin/profile.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 985 KiB |
BIN
Defensio/Images/oauth-flow-new.png
Normal file
BIN
Defensio/Images/oauth-flow-new.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 235 KiB |
Submodule Defensio/libs/awesome-beamer updated: c719f2676f...8be8423ee5
Reference in New Issue
Block a user