Compare commits
36 Commits
doc-0.0.0-
...
doc-0.0.0-
| Author | SHA1 | Date | |
|---|---|---|---|
| 76e0d6b65f | |||
| b408cb0d0f | |||
| 23fe2c0863 | |||
| dd8eb9d269 | |||
| c8f95f5169 | |||
| 450509008d | |||
| c780145790 | |||
| 9d96f7eafc | |||
| eb9b4c4c1f | |||
| 2cd24abcde | |||
| c030d304f5 | |||
| b950ec6d66 | |||
| c52d5b3303 | |||
| f87090357c | |||
| 8bedef1f85 | |||
| c966caf7f9 | |||
| c19ae8a982 | |||
| 26d56c0d24 | |||
| f5223405a5 | |||
| 7ab7e9e25d | |||
| 370942efe1 | |||
| 490912aaca | |||
| 6d15ab6b0a | |||
| aa1353adce | |||
| bbb2f94944 | |||
| f25d6be858 | |||
| b2d89e7830 | |||
| c4d0bb1a9a | |||
| 2aeb5f2f8f | |||
| 8a150208dd | |||
| 6798cbf877 | |||
| 63f9f721a2 | |||
| ea9479628c | |||
| 4ddb7d8904 | |||
| aa704577ad | |||
| 37262ff470 |
@@ -6,8 +6,9 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build the debian package
|
name: Convert to PDF
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: "Git clone"
|
- name: "Git clone"
|
||||||
run: git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git .
|
run: git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git .
|
||||||
@@ -15,17 +16,30 @@ jobs:
|
|||||||
run: git checkout "${{ gitea.sha }}"
|
run: git checkout "${{ gitea.sha }}"
|
||||||
- name: "Submodules auschecken"
|
- name: "Submodules auschecken"
|
||||||
run: git submodule update --init
|
run: git submodule update --init
|
||||||
|
- name: "Debug"
|
||||||
- name: "Install dependencies"
|
run: ls -la ./Defensio
|
||||||
run: sudo apt-get update && sudo apt-get install pandoc nodejs texlive-full -y
|
- uses: docker://git.kocoder.xyz/docker/ga-pandoc:d2995fb914e313703da2c7754763e7fa01dae88f
|
||||||
|
name: Pandoc
|
||||||
- name: "Install mermaid"
|
with:
|
||||||
run: npm i -g @mermaid-js/mermaid-cli
|
env: TEXINPUTS=/workspace/Diplomarbeit-Absolventenverein/pm/Defensio:/workspace/Diplomarbeit-Absolventenverein/pm/Defensio/libs/awesome-beamer/:/workspace/Diplomarbeit-Absolventenverein/pm/Defensio/libs/smile/
|
||||||
|
command: pandoc
|
||||||
- name: "Build .deb"
|
args: >-
|
||||||
run: cd ./Defensio && ./pandoc.sh
|
/workspace/Diplomarbeit-Absolventenverein/pm/Defensio/01_Praesentation_Allgemein.md
|
||||||
|
/workspace/Diplomarbeit-Absolventenverein/pm/Defensio/02_Praesentation_Konstantin_Hintermayer.md
|
||||||
|
/workspace/Diplomarbeit-Absolventenverein/pm/Defensio/03_Praesentation_Florian_Edlmayer.md
|
||||||
|
/workspace/Diplomarbeit-Absolventenverein/pm/Defensio/04_Praesentation_Adam_Gaiswinkler.md
|
||||||
|
-t beamer
|
||||||
|
--template /workspace/Diplomarbeit-Absolventenverein/pm/Defensio/00_preamble.tex
|
||||||
|
--pdf-engine=pdflatex
|
||||||
|
--slide-level=2
|
||||||
|
--number-sections
|
||||||
|
--lua-filter /workspace/Diplomarbeit-Absolventenverein/pm/_extensions/diagram/diagram.lua
|
||||||
|
--syntax-definition /workspace/Diplomarbeit-Absolventenverein/pm/_extensions/razor/razor.xml
|
||||||
|
--syntax-definition /workspace/Diplomarbeit-Absolventenverein/pm/_extensions/nginx/nginx.xml
|
||||||
|
-o defensio.pdf
|
||||||
- name: "Create release"
|
- name: "Create release"
|
||||||
uses: akkuman/gitea-release-action@v1
|
uses: akkuman/gitea-release-action@v1
|
||||||
with:
|
with:
|
||||||
files: |-
|
files: |-
|
||||||
./Defensio/defensio.pdf
|
./Defensio/defensio.pdf
|
||||||
|
./Defensio/Images/*
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
name: Word Count
|
name: Word Count
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
branches: [ "main", "master" ]
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main", "master" ]
|
branches: [ "main", "master" ]
|
||||||
|
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
diplomarbeitsbuch.pdf
|
diplomarbeitsbuch.pdf
|
||||||
|
defensio.pdf
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
\title[AlumniHub]{AlumniHub}
|
\title[AlumniHub]{AlumniHub}
|
||||||
\subtitle{Web-Entwicklung für den Absolventenverein}
|
\subtitle{Web-Entwicklung für den Absolventenverein}
|
||||||
\author{Konstantin Hintermayer \\ Adam Gaiswinkler \\ Florian Edlmayer}
|
\author{Konstantin Hintermayer \\ Florian Edlmayer \\ Adam Gaiswinkler}
|
||||||
\email{}
|
\email{}
|
||||||
\institute{Schulzentrum HTL HAK Ungargasse}
|
\institute{Schulzentrum HTL HAK Ungargasse}
|
||||||
\uni{Schulzentrum HTL HAK Ungargasse}
|
\uni{Schulzentrum HTL HAK Ungargasse}
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
# Adam Gaiswinkler
|
|
||||||
|
|
||||||
## Individueller Teil: Adam Gaiswinkler
|
|
||||||
**CMS‑Modul & Frontend**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Ausgangslage & Motivation
|
|
||||||
- **Ausgangssituation**: Moderne Frontend‑Plattform für den Absolventenverein (responsive, neue Features).
|
|
||||||
- **Persönliche Motivation**:
|
|
||||||
- Team‑Verkleinerung (6 → 3) → mehr Verantwortung.
|
|
||||||
- Projektidentifikation & Praxis‑Blazor/ASP.NET.
|
|
||||||
- **Ziele**:
|
|
||||||
- Oqtane‑Module (Anmeldetool, Hall‑of‑Fame).
|
|
||||||
- Responsives UI/UX.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Eingesetzte Technologien
|
|
||||||
- **Tech‑Stack**: Bootstrap + Custom‑CSS, QuestPDF, Gitea, VS 2022 wechsel zu VS Code (macOS).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Umsetzung: Oqtane Theme
|
|
||||||
- Eigen‑Navigation (bootstrap Komponenten haben nicht gepasst ).
|
|
||||||
- Systemseiten per LINQ ausblenden.
|
|
||||||
- Responsive CSS‑Media‑Queries + reines CSS‑Burger‑Menu.
|
|
||||||
- ControlPanel & Cookie‑Consent.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Umsetzung: Hall of Fame
|
|
||||||
- **Karten‑Grid**: Responsive Übersicht, Live‑Suche & Sortierung.
|
|
||||||
- **Detail‑Seite**: Glasmorphismus‑Design.
|
|
||||||
- **Workflow**: Rich‑Text‑Editor, Bild‑Upload (max 5 MB), Status (Entwurf/Veröffentlicht) inkl. Eigentümer‑Check.
|
|
||||||
- **PDF‑Export**: QuestPDF.
|
|
||||||
- **Moderation**: Meldesystem über Interfaces‑Paket.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Umsetzung: Anmeldetool
|
|
||||||
- Klar getrennte Ja/Nein‑Buttons.
|
|
||||||
- Live‑Status‑Updates via Blazor.
|
|
||||||
- UI‑Overlay, mobile‑freundlich.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Herausforderungen & Lösungen
|
|
||||||
- **Plattformwechsel**: Windows → macOS → JetBrains Rider.
|
|
||||||
- **Hosting‑Probleme**: Node.js/HTML‑Übergangslösung 2025.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Learnings
|
|
||||||
- **Technisch**: Git, CSS‑Flexbox, Blazor.
|
|
||||||
- **Methodisch**: Aufgabenverteilung, regelmäßige Meetings.
|
|
||||||
- **Persönlich**: Eigeninitiative & Verantwortung.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Fazit & Ausblick
|
|
||||||
- Theme final, mobil, Hall of Fame & Anmeldetool funktionsfähig.
|
|
||||||
- **Erweiterungen**: Teilnehmer‑Auswertung, Anmelde‑Limit, automatische E‑Mail‑Erinnerungen.
|
|
||||||
|
|
||||||
|
|
||||||
88
Defensio/04_Praesentation_Adam_Gaiswinkler.md
Normal file
88
Defensio/04_Praesentation_Adam_Gaiswinkler.md
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
# Adam Gaiswinkler
|
||||||
|
|
||||||
|
## Individueller Teil: Adam Gaiswinkler
|
||||||
|
**Entwicklung von CMS‑Modulen & Frontend-Design**
|
||||||
|
|
||||||
|
- Schwerpunkt: Oqtane-Theme, Hall-of-Fame-Modul & Anmeldetool
|
||||||
|
- Ziel: Moderne, responsive Website für den HTL-Absolventenverein
|
||||||
|
|
||||||
|
<!-- BILD: Logo HTL Ungargasse + Vereinslogo nebeneinander -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ausgangslage & Motivation
|
||||||
|
- **Ausgangssituation**: Moderne Frontend‑Plattform für den Absolventenverein (responsive, neue Features).
|
||||||
|
- **Persönliche Motivation**:
|
||||||
|
- Team‑Verkleinerung (6 → 3) → mehr Verantwortung.
|
||||||
|
- Projektidentifikation & Praxis‑Blazor/ASP.NET.
|
||||||
|
- **Ziele**:
|
||||||
|
- Oqtane‑Module (Anmeldetool, Hall‑of‑Fame).
|
||||||
|
- Responsives UI/UX.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Eingesetzte Technologien
|
||||||
|
- **Tech‑Stack**: Bootstrap + Custom‑CSS, QuestPDF, Gitea, VS 2022 wechsel zu VS Code (macOS).
|
||||||
|
|
||||||
|
<!-- BILD: Logos der verwendeten Tools (Bootstrap, QuestPDF, Gitea, VS Code) nebeneinander -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Umsetzung: Oqtane Theme
|
||||||
|
- Eigen‑Navigation (bootstrap Komponenten haben nicht gepasst ).
|
||||||
|
- Systemseiten per LINQ ausblenden.
|
||||||
|
- Responsive CSS‑Media‑Queries + reines CSS‑Burger‑Menu.
|
||||||
|
- ControlPanel & Cookie‑Consent.
|
||||||
|

|
||||||
|
<!-- BILD: Screenshot der Website-Navigation auf Desktop (volle Menüleiste) -->
|
||||||
|
<!-- BILD: Screenshot des Burger-Menüs auf Mobile (aufgeklappt) -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Umsetzung: Hall of Fame
|
||||||
|
- **Karten‑Grid**: Responsive Übersicht, Live‑Suche & Sortierung **in Echtzeit – kein Seitenreload** (Blazor).
|
||||||
|
- **Detail‑Seite**: Glasmorphismus‑Design (halbtransparente Karten mit Blur-Effekt).
|
||||||
|
- **Workflow**: Rich‑Text‑Editor, Bild‑Upload mit **Live-Vorschau** (max 5 MB), Status (Entwurf/Veröffentlicht) inkl. Eigentümer‑Check.
|
||||||
|
- **PDF‑Export**: Professionelle Profil-PDFs server-seitig mit QuestPDF.
|
||||||
|
- **Moderation**: Meldesystem über separates Interfaces‑Paket → saubere Logik-Trennung.
|
||||||
|

|
||||||
|

|
||||||
|
<!-- BILD: Screenshot des Karten-Grids mit mehreren Alumni-Einträgen -->
|
||||||
|
<!-- BILD: Screenshot der Detailseite (Glasmorphismus-Design) -->
|
||||||
|
<!-- BILD: Screenshot eines generierten PDFs -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Umsetzung: Anmeldetool
|
||||||
|
- Klar getrennte Ja/Nein‑Buttons (grün/rot).
|
||||||
|
- **Live‑Feedback via Blazor**: Statusänderungen sofort sichtbar – andere Teilnehmer sehen Updates direkt.
|
||||||
|
- Mobile-optimiert: kein Overlay-Clipping, sauberes Touch-Handling.
|
||||||
|
- Saubere Trennung: UI-Komponente & Backend-API getrennt.
|
||||||
|
|
||||||
|
<!-- BILD: Screenshot Anmeldetool mit gruenem Ja- und rotem Nein-Button -->
|
||||||
|
<!-- BILD: Screenshot auf Mobile (Overlay-Ansicht) -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Herausforderungen & Lösungen
|
||||||
|
- **Plattformwechsel** Windows → macOS: Oqtane stark an Windows gebunden → **Visual Studio Code** als plattformübergreifende Lösung.
|
||||||
|
- **Hosting-Ausfall** (Hetzner, Sommer 2025): kurz vor einem Event → schnelle **Node.js/HTML-Übergangslösung** sicherte Event-Anmeldung.
|
||||||
|
|
||||||
|
<!-- BILD: Screenshot von Visual Studio Code auf macOS -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Learnings
|
||||||
|
- **Technisch**: Git, CSS‑Flexbox, Blazor.
|
||||||
|
- **Methodisch**: Aufgabenverteilung, regelmäßige Meetings.
|
||||||
|
- **Persönlich**: Eigeninitiative & Verantwortung.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fazit & Ausblick
|
||||||
|
- Theme final, mobil, Hall of Fame & Anmeldetool funktionsfähig.
|
||||||
|
- **Erweiterungen**: Teilnehmer‑Auswertung, Anmelde‑Limit, automatische E‑Mail‑Erinnerungen.
|
||||||
|
|
||||||
|
<!-- BILD: Gesamtansicht der fertigen Website (Desktop) als Abschluss-Screenshot -->
|
||||||
|
|
||||||
|
|
||||||
BIN
Defensio/Images/HallOfFame.png
Normal file
BIN
Defensio/Images/HallOfFame.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
BIN
Defensio/Images/HallOfFameBeispiel.png
Normal file
BIN
Defensio/Images/HallOfFameBeispiel.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 MiB |
BIN
Defensio/Images/ThemeBurgerMenu.png
Normal file
BIN
Defensio/Images/ThemeBurgerMenu.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Submodule Defensio/libs/awesome-beamer updated: 8be8423ee5...e282972eb1
@@ -3,8 +3,8 @@ export TEXINPUTS=".:./libs/awesome-beamer/:./libs/smile/:$TEXINPUTS"
|
|||||||
pandoc \
|
pandoc \
|
||||||
01_Praesentation_Allgemein.md \
|
01_Praesentation_Allgemein.md \
|
||||||
02_Praesentation_Konstantin_Hintermayer.md \
|
02_Praesentation_Konstantin_Hintermayer.md \
|
||||||
03_Praesentation_Adam_Gaiswinkler.md \
|
03_Praesentation_Florian_Edlmayer.md \
|
||||||
04_Praesentation_Florian_Edlmayer.md \
|
04_Praesentation_Adam_Gaiswinkler.md \
|
||||||
-t beamer \
|
-t beamer \
|
||||||
--template 00_preamble.tex \
|
--template 00_preamble.tex \
|
||||||
--pdf-engine=pdflatex \
|
--pdf-engine=pdflatex \
|
||||||
|
|||||||
3
Defensio/puppeteer-config.json
Normal file
3
Defensio/puppeteer-config.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"args": ["--no-sandbox"]
|
||||||
|
}
|
||||||
@@ -151,6 +151,11 @@ local mermaid = {
|
|||||||
compile = function (self, code)
|
compile = function (self, code)
|
||||||
local mime_type = self.mime_type or 'image/svg+xml'
|
local mime_type = self.mime_type or 'image/svg+xml'
|
||||||
local file_extension = extension_for_mimetype[mime_type]
|
local file_extension = extension_for_mimetype[mime_type]
|
||||||
|
|
||||||
|
-- Resolve puppeteer config path
|
||||||
|
local puppeteer_config = pandoc.path.join({pandoc.system.get_working_directory(), 'puppeteer-config.json'})
|
||||||
|
|
||||||
|
|
||||||
return with_temporary_directory("diagram", function (tmpdir)
|
return with_temporary_directory("diagram", function (tmpdir)
|
||||||
return with_working_directory(tmpdir, function ()
|
return with_working_directory(tmpdir, function ()
|
||||||
local infile = 'diagram.mmd'
|
local infile = 'diagram.mmd'
|
||||||
@@ -158,7 +163,7 @@ local mermaid = {
|
|||||||
write_file(infile, code)
|
write_file(infile, code)
|
||||||
pipe(
|
pipe(
|
||||||
self.execpath or 'mmdc',
|
self.execpath or 'mmdc',
|
||||||
{"--pdfFit", "--iconPacksNamesAndUrls", "mdi#https://unpkg.com/@iconify-json/mdi@1.2.3/icons.json", "--input", infile, "--output", outfile},
|
{"--pdfFit", "--iconPacksNamesAndUrls", "mdi#https://unpkg.com/@iconify-json/mdi@1.2.3/icons.json", "-p", puppeteer_config, "--input", infile, "--output", outfile},
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
return read_file(outfile), mime_type
|
return read_file(outfile), mime_type
|
||||||
@@ -167,6 +172,24 @@ local mermaid = {
|
|||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Source - https://stackoverflow.com/a/27028488
|
||||||
|
-- Posted by hookenz, modified by community. See post 'Timeline' for change history
|
||||||
|
-- Retrieved 2026-04-18, License - CC BY-SA 4.0
|
||||||
|
|
||||||
|
function dump(o)
|
||||||
|
if type(o) == 'table' then
|
||||||
|
local s = '{ '
|
||||||
|
for k,v in pairs(o) do
|
||||||
|
if type(k) ~= 'number' then k = '"'..k..'"' end
|
||||||
|
s = s .. '['..k..'] = ' .. dump(v) .. ','
|
||||||
|
end
|
||||||
|
return s .. '} '
|
||||||
|
else
|
||||||
|
return tostring(o)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- TikZ
|
--- TikZ
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|||||||
31
defensio.md
31
defensio.md
@@ -1,31 +0,0 @@
|
|||||||
% Habits
|
|
||||||
% John Doe
|
|
||||||
% March 22, 2005
|
|
||||||
|
|
||||||
# In the morning
|
|
||||||
|
|
||||||
## Getting up
|
|
||||||
|
|
||||||
- Turn off alarm
|
|
||||||
- Get out of bed
|
|
||||||
|
|
||||||
## Breakfast
|
|
||||||
|
|
||||||
- Eat eggs
|
|
||||||
- Drink coffee
|
|
||||||
|
|
||||||
# In the evening
|
|
||||||
|
|
||||||
## Dinner
|
|
||||||
|
|
||||||
- Eat spaghetti
|
|
||||||
- Drink wine
|
|
||||||
|
|
||||||
------------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Going to sleep
|
|
||||||
|
|
||||||
- Get in bed
|
|
||||||
- Count sheep
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
pandoc \
|
|
||||||
00-praemble.md \
|
|
||||||
01-toc.md \
|
|
||||||
02-Allgemein.md \
|
|
||||||
03-Diplomarbeitsbuch-individueller-teil-Adam-Gaiswinkler.md \
|
|
||||||
04-Diplomarbeitsbuch-individueller-teil-Florian-Edlmayer.md \
|
|
||||||
05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md \
|
|
||||||
97-tabellenverzeichnis.md \
|
|
||||||
98-abbildungsverzeichnis.md \
|
|
||||||
99-bibliographie.md \
|
|
||||||
--number-sections \
|
|
||||||
--lua-filter _extensions/diagram/diagram.lua \
|
|
||||||
--syntax-definition _extensions/razor/razor.xml \
|
|
||||||
--syntax-definition _extensions/nginx/nginx.xml \
|
|
||||||
--citeproc \
|
|
||||||
--bibliography sources.bib \
|
|
||||||
--csl _extensions/sources/tgm.csl \
|
|
||||||
--include-before-body 00_preamble.tex \
|
|
||||||
-H _extensions/header/header.tex \
|
|
||||||
-V geometry:"top=2.5cm, bottom=2cm, left=3cm, right=2cm, a4paper" \
|
|
||||||
-V toc-title="Inhaltsverzeichnis" \
|
|
||||||
-V classoption=twoside \
|
|
||||||
-V fontsize=12pt \
|
|
||||||
-V linestretch=1.5 \
|
|
||||||
-o diplomarbeitsbuch.tex
|
|
||||||
3
puppeteer-config.json
Normal file
3
puppeteer-config.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"args": ["--no-sandbox"]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user