Compare commits
12 Commits
69d898bc86
...
doc-0.0.0-
| Author | SHA1 | Date | |
|---|---|---|---|
| ea9479628c | |||
| aa704577ad | |||
| 15eb9d9d5e | |||
| f11fcb68fe | |||
| 8da8374a1b | |||
| d397f0cd60 | |||
| b450fd6475 | |||
| 6789fa6f9d | |||
| 2061cdc218 | |||
| 6b0c4f7884 | |||
| ad47997aab | |||
| b337833410 |
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
|
||||||
|
- uses: docker://pandoc/core:3.8
|
||||||
|
with:
|
||||||
|
args: "--help" # gets appended to pandoc command
|
||||||
|
- 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
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Aufgabenbereiche:
|
|||||||
|
|
||||||
- Infrastruktur & CI/CD
|
- Infrastruktur & CI/CD
|
||||||
- Product Owner
|
- Product Owner
|
||||||
|
- Kundenschnittstelle
|
||||||
- Softwareentwicklung:
|
- Softwareentwicklung:
|
||||||
- Event Registration
|
- Event Registration
|
||||||
- Black Board
|
- Black Board
|
||||||
@@ -18,13 +19,20 @@ Aufgabenbereiche:
|
|||||||
|
|
||||||
:::: column
|
:::: column
|
||||||
|
|
||||||
{width=4em}
|
\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 & CI/CD
|
## Infrastruktur
|
||||||
|
|
||||||
|
::: columns
|
||||||
|
:::: column
|
||||||
|
|
||||||
Systemaufbau:
|
Systemaufbau:
|
||||||
|
|
||||||
@@ -33,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
|
||||||
|
|
||||||
@@ -61,3 +98,5 @@ right
|
|||||||
::::
|
::::
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
## Fazit
|
||||||
@@ -1,92 +1,65 @@
|
|||||||
# Adam Gaiswinkler
|
# Adam Gaiswinkler
|
||||||
|
|
||||||
## Individueller Teil: Adam Gaiswinkler
|
## Individueller Teil: Adam Gaiswinkler
|
||||||
**Entwicklung von CMS-Modulen & Frontend-Design**
|
**CMS‑Modul & Frontend**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Ausgangslage & Motivation
|
## Ausgangslage & Motivation
|
||||||
- **Ausgangssituation**: Bedarf an einer modernen Plattform für den Absolventenverein der HTL Ungargasse.
|
- **Ausgangssituation**: Moderne Frontend‑Plattform für den Absolventenverein (responsive, neue Features).
|
||||||
- **Persönliche Motivation**:
|
- **Persönliche Motivation**:
|
||||||
- Steigende Verantwortung durch Teamverkleinerung (von 6 auf 3 Personen).
|
- Team‑Verkleinerung (6 → 3) → mehr Verantwortung.
|
||||||
- Identifikation mit dem Projekt wuchs deutlich.
|
- Projektidentifikation & Praxis‑Blazor/ASP.NET.
|
||||||
- Praktische Anwendung von Blazor & ASP.NET in einem realen Umfeld.
|
- **Ziele**:
|
||||||
- **Individuelle Ziele**:
|
- Oqtane‑Module (Anmeldetool, Hall‑of‑Fame).
|
||||||
- Entwicklung von Oqtane-Modulen (Anmeldetool & Hall of Fame).
|
- Responsives UI/UX.
|
||||||
- Web-Entwicklung mit Fokus auf responsives und nutzerfreundliches UI/UX.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Eingesetzte Technologien
|
## Eingesetzte Technologien
|
||||||
|
- **Tech‑Stack**: Bootstrap + Custom‑CSS, QuestPDF, Gitea, VS 2022 wechsel zu VS Code (macOS).
|
||||||
- **Styling**: Bootstrap & Custom CSS
|
|
||||||
- **Spezielle Tools**: QuestPDF (PDF-Generierung), Gitea (Versionskontrolle)
|
|
||||||
- **Entwicklungsumgebung**: Visual Studio 2022 & Visual Studio Code (macOS)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Umsetzung: Oqtane Theme
|
## Umsetzung: Oqtane Theme
|
||||||
- **Ziel**: Modernes, schlichtes Design im Stil der HTL Ungargasse (szu.at).
|
- Eigen‑Navigation (bootstrap Komponenten haben nicht gepasst ).
|
||||||
- **Technische Highlights**:
|
- Systemseiten per LINQ ausblenden.
|
||||||
- Vollständige Eigenentwicklung der Navigationslogik (über `PageState.Pages`).
|
- Responsive CSS‑Media‑Queries + reines CSS‑Burger‑Menu.
|
||||||
- **Dynamisches Ausblenden von Systemseiten via LINQ**.
|
- ControlPanel & Cookie‑Consent.
|
||||||
- **Responsive Design**: Einsatz von CSS Media Queries und einer komplett CSS-basierten Burger-Menü-Lösung.
|
|
||||||
- Integration eines `ControlPanels` und Cookie-Consent.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Umsetzung: Hall of Fame (1)
|
## Umsetzung: Hall of Fame
|
||||||
- **Zweck**: Sichtbarmachung von erfolgreichen Absolventinnen und Absolventen.
|
- **Karten‑Grid**: Responsive Übersicht, Live‑Suche & Sortierung.
|
||||||
- **UI & UX**:
|
- **Detail‑Seite**: Glasmorphismus‑Design.
|
||||||
- Responsive Kartenübersicht der Personen mit Such- und Sortierfunktion (Echtzeit).
|
- **Workflow**: Rich‑Text‑Editor, Bild‑Upload (max 5 MB), Status (Entwurf/Veröffentlicht) inkl. Eigentümer‑Check.
|
||||||
- Detailseite im modernen "Glasmorphismus"-Design.
|
- **PDF‑Export**: QuestPDF.
|
||||||
- **Datenerfassung & Workflow**:
|
- **Moderation**: Meldesystem über Interfaces‑Paket.
|
||||||
- Rich-Text-Editor zur Eingabe des Werdegangs.
|
|
||||||
- Bild-Upload-System (Live-Vorschau, max. 5 MB) statt manueller URLs.
|
|
||||||
- Statusverwaltung ("Entwurf" vs. "Veröffentlicht") inkl. Eigentümerprüfung.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Umsetzung: Hall of Fame (2)
|
## Umsetzung: Anmeldetool
|
||||||
- **PDF-Export**: Dynamische Generierung eines ansprechenden Profil-PDFs mittels *QuestPDF*.
|
- Klar getrennte Ja/Nein‑Buttons.
|
||||||
- **Moderation**:
|
- Live‑Status‑Updates via Blazor.
|
||||||
- Integriertes Meldesystem (Reporting) direkt über ein separates Interfaces-Paket angesteuert.
|
- UI‑Overlay, mobile‑freundlich.
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Umsetzung: Anmeldetool für Treffen
|
|
||||||
- **Zweck**: Vereinfachung der Planung und Teilnehmerverwaltung.
|
|
||||||
- **Funktion**:
|
|
||||||
- Klare, farblich getrennte Zusage- und Absage-Buttons.
|
|
||||||
- Live-Rückmeldung bei Statusänderung dank Blazor.
|
|
||||||
- Saubere Trennung von UI-Komponente und Backend-API.
|
|
||||||
- **UX-Optimierung**:
|
|
||||||
- Fokus auf Overlay-Darstellung und Mobile-Clipping-Vermeidung.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Herausforderungen & Lösungen
|
## Herausforderungen & Lösungen
|
||||||
- **Plattformwechsel (Windows zu macOS)**: Oqtane ist stark an Windows gekoppelt; gelöst durch Einsatz von JetBrains Rider.
|
- **Plattformwechsel**: Windows → macOS → JetBrains Rider.
|
||||||
- **Zeitdruck & Infrastruktur-Ausfälle**:
|
- **Hosting‑Probleme**: Node.js/HTML‑Übergangslösung 2025.
|
||||||
- Probleme mit Hosting (Hetzner).
|
|
||||||
- **Lösung**: Entwicklung einer schlanken "Übergangslösung" (Node.js/HTML) im Sommer 2025 zur zeitgerechten Event-Abwicklung.
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Learnings
|
## Learnings
|
||||||
- **Technisch**: Tieferes Verständnis von Version Control (Git), CSS/Flexbox (Responsiveness) und C#/Blazor-Tiefen.
|
- **Technisch**: Git, CSS‑Flexbox, Blazor.
|
||||||
- **Methodisch**: Eine klare Aufgabenaufteilung sowie regelmäßige Team-Meetings sind unerlässlich für den Projekterfolg.
|
- **Methodisch**: Aufgabenverteilung, regelmäßige Meetings.
|
||||||
- **Persönlich**: Bedeutsamkeit von Eigeninitiative und Verantwortungsübernahme, gerade in schwierigen Projektphasen.
|
- **Persönlich**: Eigeninitiative & Verantwortung.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Fazit & Mögliche Erweiterungen
|
## Fazit & Ausblick
|
||||||
- **Erreichtes**:
|
- Theme final, mobil, Hall of Fame & Anmeldetool funktionsfähig.
|
||||||
- Theme ist final in Oqtane integriert und mobil optimiert.
|
- **Erweiterungen**: Teilnehmer‑Auswertung, Anmelde‑Limit, automatische E‑Mail‑Erinnerungen.
|
||||||
- Hall of Fame und Anmeldetool sind voll funktionstüchtig.
|
|
||||||
- **Mögliche Erweiterungen**:
|
|
||||||
- Integration einer umfassenden Teilnehmerlisten-Auswertung (Datenbank).
|
|
||||||
- Limit-Funktion für maximale Anmeldungen bei Veranstaltungen.
|
|
||||||
- Automatische E-Mail-Erinnerungen für Events.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user