Compare commits
77 Commits
8a150208dd
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 27ef0a0ba7 | |||
| 6e124dfb67 | |||
| d900fa258d | |||
| 1f21067f75 | |||
| 0306fabb91 | |||
| a52d5ab983 | |||
| 25fc5690fe | |||
| f88a170d86 | |||
| 71678fafa3 | |||
| 898d7eacce | |||
| deb8173bde | |||
| 2bfede6112 | |||
| ae5ecf8564 | |||
| 48b6193507 | |||
| d2c877fe42 | |||
| e065b1f6ff | |||
| 6a6786f6bc | |||
| 803bdb234a | |||
| e30c4086e2 | |||
| 9f827889f9 | |||
| a7d0f34a14 | |||
| e4dc1dc97c | |||
| 522e60793a | |||
| 4518e8142e | |||
| 8bde5bc89b | |||
| d57913c339 | |||
| aa983da15d | |||
| dfec681d34 | |||
| 1e5696cd50 | |||
| bafe030e25 | |||
| 62a6dd1fe3 | |||
| b975d4e270 | |||
| 8ce0d4e186 | |||
| c6ebf25659 | |||
| 2bb2161e2f | |||
| 7d570e9945 | |||
| 65983a2f38 | |||
| a27136bbe3 | |||
| 764b18e41a | |||
| b07fc29512 | |||
| f6718139cc | |||
| b944048df3 | |||
| 7eb4e0761e | |||
| 1bfd8b3a96 | |||
| 020707c380 | |||
| e623ca9340 | |||
| 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 | |||
| 4ddb7d8904 | |||
| 37262ff470 |
@@ -6,7 +6,7 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build the debian package
|
||||
name: Convert to PDF
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
@@ -16,13 +16,30 @@ jobs:
|
||||
run: git checkout "${{ gitea.sha }}"
|
||||
- name: "Submodules auschecken"
|
||||
run: git submodule update --init
|
||||
- uses: docker://pandoc/core:3.8
|
||||
- name: "Debug"
|
||||
run: ls -la ./Defensio
|
||||
- uses: docker://git.kocoder.xyz/docker/ga-pandoc:d2995fb914e313703da2c7754763e7fa01dae88f
|
||||
name: Pandoc
|
||||
with:
|
||||
args: "--help" # gets appended to pandoc command
|
||||
- name: "Build .deb"
|
||||
run: cd ./Defensio && ./pandoc.sh
|
||||
env: TEXINPUTS=./Defensio:./Defensio/libs/awesome-beamer/:./Defensio/libs/smile/
|
||||
command: pandoc
|
||||
args: >-
|
||||
/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"
|
||||
uses: akkuman/gitea-release-action@v1
|
||||
with:
|
||||
files: |-
|
||||
./Defensio/defensio.pdf
|
||||
./Defensio/Images/*
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
name: Word Count
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main", "master" ]
|
||||
pull_request:
|
||||
branches: [ "main", "master" ]
|
||||
|
||||
|
||||
3
.gitignore
vendored
@@ -1 +1,2 @@
|
||||
diplomarbeitsbuch.pdf
|
||||
diplomarbeitsbuch.pdf
|
||||
defensio.pdf
|
||||
@@ -1,4 +1,4 @@
|
||||
\documentclass[aspectratio=169]{beamer}
|
||||
\documentclass[aspectratio=169,t]{beamer}
|
||||
|
||||
\providecommand{\tightlist}{%
|
||||
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
||||
@@ -33,13 +33,14 @@
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{pgfplotstable}
|
||||
% \usepackage{fontawesome}
|
||||
\usepackage{fontawesome5}
|
||||
\usepackage{tikzpingus}
|
||||
\usepackage{tikzducks}
|
||||
\usepackage{pdfpc}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\usepgfplotslibrary{dateplot}
|
||||
\usetikzlibrary{shapes,tikzmark}
|
||||
\usetikzlibrary{shapes,tikzmark,positioning,shapes.geometric}
|
||||
\tikzset{pipelinestep/.style={lw,rnd,shape=signal,signal from=west,signal pointer angle=130,minimum width=3cm,minimum height=2cm,draw=black,fill=lightgray!30}}
|
||||
|
||||
\def\info#1{\begingroup\color{gray}\scriptsize#1\endgroup}
|
||||
@@ -73,7 +74,6 @@
|
||||
\uni{Schulzentrum HTL HAK Ungargasse}
|
||||
\location{Wien}
|
||||
\background{./Images/images/background/title-slide/background.png}
|
||||
\logo{\includegraphics[width=3cm]{\imagepath/images/logos/logo.png}}
|
||||
\date{22. April 2026}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
{
|
||||
\begingroup
|
||||
\nonumberson
|
||||
\begin{frame}[noframenumbering,plain]{Agenda}
|
||||
\begin{frame}[c,noframenumbering,plain]{Agenda}
|
||||
\tableofcontents[currentsection]
|
||||
\end{frame}
|
||||
\endgroup
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
\begingroup
|
||||
\nonumberson
|
||||
\begin{frame}[noframenumbering,plain]{Agenda}
|
||||
\begin{frame}[c,noframenumbering,plain]{Agenda}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
\endgroup
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
|
||||
## {.plain}
|
||||
|
||||
\setbeamertemplate{sidebar left}{}
|
||||
|
||||
\begin{tikzpicture}[remember picture,overlay]
|
||||
\node[anchor=center] at (current page.center) {
|
||||
\movie[width=\paperwidth, height=\paperheight, poster, showcontrols=false, autostart]{}{\imagepath/video/introduction/sample-10s.mp4}
|
||||
\node[anchor=center, inner sep=0pt, outer sep=0pt] at (current page.center) {
|
||||
\movie[width=\paperwidth, height=\paperheight, poster, showcontrols=false, autostart]{}{\imagepath/video/introduction/introduction.mp4}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -4,20 +4,24 @@
|
||||
|
||||
::: columns
|
||||
|
||||
:::: column
|
||||
Aufgabenbereiche:
|
||||
::: {.column width="50%"}
|
||||
**Aufgabenbereiche**:
|
||||
|
||||
- Infrastruktur & CI/CD
|
||||
- Product Owner
|
||||
- Kundenschnittstelle
|
||||
- Softwareentwicklung:
|
||||
- Event Registration
|
||||
- Black Board
|
||||
- Report System
|
||||
- Mass Mailer
|
||||
::::
|
||||
- Infrastruktur & CI/CD
|
||||
|
||||
:::: column
|
||||
**Softwareentwicklung:**
|
||||
|
||||
- Event Registration
|
||||
- Black Board
|
||||
- Report System
|
||||
- Mass Mailer
|
||||
- Token Lifetime
|
||||
|
||||
:::
|
||||
|
||||
::: {.column width="50%"}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\clip (0,0) circle (3em);
|
||||
@@ -25,78 +29,237 @@ Aufgabenbereiche:
|
||||
\draw[accent, line width=3pt] (0,0) circle (3em);
|
||||
\end{tikzpicture}
|
||||
|
||||
::::
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
## Infrastruktur
|
||||
|
||||
::: columns
|
||||
:::: column
|
||||
::: {.column width="50%"}
|
||||
|
||||
Systemaufbau:
|
||||
**Entwicklung:**
|
||||
|
||||
- Debian Linux
|
||||
- PostgreSQL
|
||||
- NginX
|
||||
- Asp.Net Core
|
||||
- **Gitea:** Versionskontrollsystem
|
||||
- **Wireguard:** VPN
|
||||
- **Docker:** Containerisierung
|
||||
- **GitHub:** Transfer
|
||||
- **Gitea Actions:** CI/CD
|
||||
|
||||
::::
|
||||
:::: column
|
||||
:::
|
||||
::: {.column width="50%"}
|
||||
|
||||
Entwicklungsumgebung:
|
||||
**Produktion:**
|
||||
|
||||
- Gitea Server
|
||||
- Wireguard
|
||||
- Docker
|
||||
- Transfer: GitHub
|
||||
- Gitea Actions
|
||||
|
||||
::::
|
||||
- **Debian:** Betriebssystem
|
||||
- **NginX:** Reverse Proxy
|
||||
- **PostgreSQL:** Datenbank
|
||||
- **Oqtane:** CMS
|
||||
|
||||
:::
|
||||
:::
|
||||
|
||||
\vfill
|
||||
|
||||
## CI/CD
|
||||
\begin{center}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/debian.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/docker.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/gitea.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/wireguard.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/github.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/nginx.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/postgres.pdf} \hspace{1em}
|
||||
\includegraphics[width=2.5em]{./Images/images/konstantin/logos/oqtane.pdf}
|
||||
\end{center}
|
||||
|
||||
CI:
|
||||
\vfill
|
||||
<!-- { width=100% } -->
|
||||
|
||||
- Gitea Actions
|
||||
- Debian Packages (.deb)
|
||||
- Code-Reviewing:
|
||||
- KI
|
||||
- Git-Flow
|
||||
## {.unnumbered .noframenumbering}
|
||||
|
||||
## Softwarearchitektur
|
||||
\vfill
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant browser as Client
|
||||
participant nginx as NginX
|
||||
participant oqtane as Oqtane
|
||||
participant db as PostgreSQL
|
||||
|
||||
browser->>+nginx: HTTPS => 0.0.0.0:443
|
||||
nginx->>nginx: SSL Terminierung
|
||||
nginx->>+oqtane: HTTP => 127.0.0.1:5000
|
||||
oqtane->>+db: SQL => 127.0.0.1:5432
|
||||
db-->>-oqtane: SQL
|
||||
oqtane-->>-nginx: HTTP
|
||||
nginx-->>-browser: HTTPS
|
||||
```
|
||||
|
||||
\vfill
|
||||
|
||||
## Vom Commit zu Paket
|
||||
|
||||
\begin{tikzpicture}[
|
||||
node distance=1cm,
|
||||
stepnode/.style={circle, minimum size=1.2cm, draw, line width=1.5pt, fill=white, inner sep=0pt},
|
||||
labelnode/.style={align=center, font=\small\bfseries},
|
||||
textnode/.style={align=center, font=\scriptsize, color=gray},
|
||||
track/.style={line width=2pt, gray!20}
|
||||
]
|
||||
% Central Track
|
||||
\draw[track] (-1,0) -- (12,0);
|
||||
|
||||
\node[stepnode, draw=red] (n1) at (0,0) {\color{red}\small\faCodeBranch};
|
||||
\node[stepnode, draw=green!60!black, right=of n1] (n2) {\color{green!60!black}\small\faTag};
|
||||
\node[stepnode, draw=blue!60!black, right=of n2] (n3) {\color{blue!60!black}\small\faTasks};
|
||||
\node[stepnode, draw=green!60!black, right=of n3] (n4) {\color{green!60!black}\small\faBoxOpen};
|
||||
\node[stepnode, draw=blue!60!black, right=of n4] (n5) {\color{blue!60!black}\small\faDatabase};
|
||||
|
||||
% Labels Above
|
||||
\node[labelnode, below=0.2cm of n1, color=red] {Commit};
|
||||
\node[labelnode, below=0.2cm of n2, color=green!60!black] {Tag};
|
||||
\node[labelnode, below=0.2cm of n3, color=blue!60!black] {CI/CD};
|
||||
\node[labelnode, below=0.2cm of n4, color=green!60!black] {.deb Paket};
|
||||
\node[labelnode, below=0.2cm of n5, color=blue!60!black] {Registry};
|
||||
\end{tikzpicture}
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
**Ablauf:**
|
||||
|
||||
1. laufende Entwicklung
|
||||
2. Commit zu einem Release zusammenfassen (Tag)
|
||||
3. CI/CD Pipeline beginnt zu laufen
|
||||
4. .deb Paket wird gebaut
|
||||
5. .deb Paket wird in der Registry abgelegt
|
||||
|
||||
## Softwarearchitektur (.NET / Oqtane)
|
||||
|
||||
**Design Patterns:**
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
\begin{tikzpicture}[
|
||||
node distance=0.15cm,
|
||||
stepnode/.style={rectangle, draw, line width=1.5pt, minimum width=1.5cm, minimum height=1.5cm, fill=white, inner sep=0pt},
|
||||
]
|
||||
\node[stepnode, draw=red] (n1) at (0,0) {\LARGE\color{red}S};
|
||||
\node[stepnode, draw=green!60!black, right=of n1] (n2) {\LARGE\color{green!60!black}O};
|
||||
\node[stepnode, draw=blue!60!black, right=of n2] (n3) {\LARGE\color{blue!60!black}L};
|
||||
\node[stepnode, draw=orange, right=of n3] (n4) {\LARGE\color{orange}I};
|
||||
\node[stepnode, draw=orange!70!black, right=of n4] (n5) {\LARGE\color{orange!70!black}D};
|
||||
\end{tikzpicture}
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
- Open-Closed Principle
|
||||
- Strategy Pattern
|
||||
- Dependency Injection
|
||||
|
||||
## Technischer Vergleich
|
||||
- Dependency Injection (IServiceProvider)
|
||||
- Repository-Pattern (EntityFramework)
|
||||
|
||||
Bisherige Erfahrungen:
|
||||
|
||||
- Go
|
||||
- Typescript
|
||||
- GRPC (interprozess Kommunikation)
|
||||
|
||||
Untersuchungsgebiete:
|
||||
|
||||
- Typisierung
|
||||
- Konsistenz
|
||||
|
||||
## Teamleitung
|
||||
## Module
|
||||
|
||||
::: columns
|
||||
::: {.column width="50%"}
|
||||
**Admin Module:**
|
||||
|
||||
:::: column
|
||||
left
|
||||
::::
|
||||
- Mass Mailer
|
||||
- Token Lifetime
|
||||
- Report System
|
||||
|
||||
:::: column
|
||||
right
|
||||
::::
|
||||
**Allgemeine Module:**
|
||||
|
||||
- Event Registration
|
||||
- Black Board
|
||||
|
||||
:::
|
||||
::: {.column width="50%"}
|
||||
\vfill
|
||||

|
||||
\vfill
|
||||
:::
|
||||
:::
|
||||
|
||||
## Fazit
|
||||
## Produktion $\neq$ Staging
|
||||
|
||||
\begin{tikzpicture}[
|
||||
node distance=2.2cm,
|
||||
stepnode/.style={circle, minimum size=1.2cm, draw, line width=1.5pt, fill=white, inner sep=0pt},
|
||||
labelnode/.style={align=center, font=\small\bfseries},
|
||||
textnode/.style={align=center, font=\scriptsize, color=gray},
|
||||
track/.style={line width=2pt, gray!20}
|
||||
]
|
||||
% Central Track
|
||||
\draw[track] (-1,0) -- (12,0);
|
||||
|
||||
% Steps
|
||||
\node[stepnode, draw=green!60!black] (s1) at (0,0) {\color{green!60!black}\Large\faCheck};
|
||||
\node[stepnode, draw=accent, right=of s1] (s2) {\color{accent}\Large\faCodeBranch};
|
||||
\node[stepnode, draw=red, right=of s2] (s3) {\color{red}\Large\faExclamationTriangle};
|
||||
\node[stepnode, draw=orange, right=of s3] (s4) {\color{orange}\Large\faLightbulb};
|
||||
|
||||
% Labels Above
|
||||
\node[labelnode, above=0.2cm of s1, color=green!60!black] {Staging};
|
||||
\node[labelnode, above=0.2cm of s2, color=accent] {Deploy};
|
||||
\node[labelnode, above=0.2cm of s3, color=red] {Bruch};
|
||||
\node[labelnode, above=0.2cm of s4, color=orange] {Erkenntnis};
|
||||
\end{tikzpicture}
|
||||
|
||||
\vfill
|
||||
|
||||
::: columns
|
||||
::: {.column width="40%"}
|
||||
"It works on my Machine"
|
||||
:::
|
||||
::: {.column width="60%"}
|
||||
**Deploymentprobleme**
|
||||
|
||||
**Problem:** Schlechte Dokumentation.
|
||||
|
||||
**Lösung:** Debugging mithilfe von Wireshark und Source Code lesen.
|
||||
:::
|
||||
:::
|
||||
|
||||
|
||||
## Teamleitung & PM
|
||||
|
||||
::: columns
|
||||
:::: column
|
||||
**Scrum Workflow:**
|
||||
|
||||
- 14-tägige Sprints
|
||||
- Weeklies & Retrospektiven
|
||||
- Definition of Done (DoD)
|
||||
::::
|
||||
:::: column
|
||||
**Gitea Issues / Board:**
|
||||
|
||||
- Integrierter Workflow
|
||||
- Single Source of Truth
|
||||
|
||||
::::
|
||||
:::
|
||||
|
||||
{ width=60% }
|
||||
|
||||
## Fazit
|
||||
|
||||
\vspace{0.5em}
|
||||
|
||||
\begin{tikzpicture}[x=\linewidth/10, y=1cm, every node/.style={font=\sffamily}]
|
||||
% Rule: 90/90
|
||||
\fill[black!5] (0, 2.8) rectangle (10, 3.4);
|
||||
\fill[green!60!black] (0, 2.8) rectangle (9, 3.4);
|
||||
\node[anchor=north west, inner sep=3pt] at (0, 2.8) {\scriptsize Erste \textbf{90\,\%} des Codes $\rightarrow$ \textbf{90\,\%} der Zeit};
|
||||
|
||||
\fill[black!5] (0, 1.2) rectangle (10, 1.8);
|
||||
\fill[accent] (0, 1.2) rectangle (1, 1.8);
|
||||
\node[anchor=north west, inner sep=3pt, text=accent] at (0, 1.2) {\scriptsize \textbf{Letzte 10\,\% des Codes $\rightarrow$ weitere 90\,\% der Zeit}};
|
||||
\end{tikzpicture}
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
Learnings:
|
||||
|
||||
- **Asynchrones Arbeiten:** Entkopplung von Meetings und Deadlines.
|
||||
- **Review-First-Policy:** Konsequente Umsetzung der *Definition of Done*.
|
||||
- **Team-Fokus:** höhere Motivation und Eigenverantwortung durch Verkleinerung des Teams.
|
||||
@@ -1,13 +1,58 @@
|
||||
# Florian Edlmayer
|
||||
|
||||
## Individueller Teil: Florian Edlmayer
|
||||
**Datensicherheit, Backup-Systeme & Premium-Bereich**
|
||||
|
||||
\vspace{0.8em}
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}
|
||||
|
||||
% ── Card 1: Datensicherheit ────────────────────────────────────────
|
||||
\fill[rounded corners=6pt, fill=orange!8] (0,0) rectangle (3.4,-3.0);
|
||||
\draw[rounded corners=6pt, orange, line width=1.8pt] (0,0) rectangle (3.4,-3.0);
|
||||
\begin{scope}
|
||||
\clip[rounded corners=6pt] (0,0) rectangle (3.4,-3.0);
|
||||
\fill[orange] (0,0) rectangle (3.4,-0.85);
|
||||
\end{scope}
|
||||
\node[text=white, font=\small\bfseries, align=center] at (1.7,-0.425)
|
||||
{\faLock\ \ Datensicherheit};
|
||||
\node[font=\small, align=center, text width=3.0cm] at (1.7,-1.95)
|
||||
{DSGVO-konform \& verschlüsselt};
|
||||
|
||||
% ── Card 2: Backup-Systeme ─────────────────────────────────────────
|
||||
\fill[rounded corners=6pt, fill=orange!8] (3.8,0) rectangle (7.2,-3.0);
|
||||
\draw[rounded corners=6pt, orange, line width=1.8pt] (3.8,0) rectangle (7.2,-3.0);
|
||||
\begin{scope}
|
||||
\clip[rounded corners=6pt] (3.8,0) rectangle (7.2,-3.0);
|
||||
\fill[orange] (3.8,0) rectangle (7.2,-0.85);
|
||||
\end{scope}
|
||||
\node[text=white, font=\small\bfseries, align=center] at (5.5,-0.425)
|
||||
{\faDatabase\ \ Backup-Systeme};
|
||||
\node[font=\small, align=center, text width=3.0cm] at (5.5,-1.95)
|
||||
{Automatisch, täglich \& zuverlässig};
|
||||
|
||||
% ── Card 3: Premium-Bereich ────────────────────────────────────────
|
||||
\fill[rounded corners=6pt, fill=orange!8] (7.6,0) rectangle (11.0,-3.0);
|
||||
\draw[rounded corners=6pt, orange, line width=1.8pt] (7.6,0) rectangle (11.0,-3.0);
|
||||
\begin{scope}
|
||||
\clip[rounded corners=6pt] (7.6,0) rectangle (11.0,-3.0);
|
||||
\fill[orange] (7.6,0) rectangle (11.0,-0.85);
|
||||
\end{scope}
|
||||
\node[text=white, font=\small\bfseries, align=center] at (9.3,-0.425)
|
||||
{\faStar\ \ Premium-Bereich};
|
||||
\node[font=\small, align=center, text width=3.0cm] at (9.3,-1.95)
|
||||
{Exklusiv, motivierend \& sicher};
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
|
||||
---
|
||||
|
||||
## Ausgangslage & Zielsetzung
|
||||
- **Ausgangssituation**:
|
||||
- Keine digitale, sichere Absolventen-Vernetzung.
|
||||
- Kein digitaler Vernetzungsraum für Absolventen.
|
||||
- Keine rechtskonforme Datenverwaltung (DSGVO).
|
||||
- Keine automatisierte Datensicherung vorhanden.
|
||||
- **Mein Beitrag**:
|
||||
- Datenschutz (DSGVO).
|
||||
- Automatisierte Backups & Restore.
|
||||
@@ -18,20 +63,77 @@
|
||||
---
|
||||
|
||||
## Eingesetzte Technologien
|
||||
- **Framework**: ASP.NET Core & .NET 8
|
||||
- **Datenbanksystem**: PostgreSQL
|
||||
- **Authentifizierung**: OAuth 2.0 (LinkedIn)
|
||||
- **Scripting & Automation**: Bash-Skripte für Linux Cronjobs
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
\begin{columns}[c]
|
||||
|
||||
\begin{column}{0.33\textwidth}
|
||||
\centering
|
||||
\includegraphics[height=2.2cm]{image-1.png}\\[0.5em]
|
||||
{\large\textbf{\color{accent}PostgreSQL}}\\[0.3em]
|
||||
{\small Relationale Datenbank\\für strukturierte Datenspeicherung}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.33\textwidth}
|
||||
\centering
|
||||
\includegraphics[height=2.2cm]{image-6.png}\\[0.5em]
|
||||
{\large\textbf{\color{accent}LinkedIn OAuth 2.0}}\\[0.3em]
|
||||
{\small Sichere Authentifizierung\\ohne eigene Passwortverwaltung}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.33\textwidth}
|
||||
\centering
|
||||
\includegraphics[height=2.2cm]{image-7.png}\\[0.5em]
|
||||
{\large\textbf{\color{accent}Bash}}\\[0.3em]
|
||||
{\small Automatisierte Skripte\\für Linux Cronjobs}
|
||||
\end{column}
|
||||
|
||||
\end{columns}
|
||||
|
||||
---
|
||||
|
||||
|
||||
## DSGVO & Datenschutz
|
||||
- **Rechtliche Basis**: Einhaltung von DSGVO & DSG.
|
||||
- **Umsetzung**:
|
||||
- **Datenschutzerklärung**: Rechtskonform integriert.
|
||||
- **Datenminimierung**: Nur zwingend benötigte Daten.
|
||||
- **Vertraulichkeit**: TLS/HTTPS & lokales Austria-Hosting.
|
||||
- **Betroffenenrechte**: Auskunft & Löschung garantiert.
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
node distance=0.5cm,
|
||||
stepnode/.style={rectangle, rounded corners=3pt, minimum width=4.2cm, minimum height=2.2cm, draw, line width=1pt, fill=white, inner sep=2pt},
|
||||
iconnode/.style={circle, minimum size=0.8cm, fill=gray!5},
|
||||
titlenode/.style={align=center, font=\scriptsize\bfseries},
|
||||
arrow/.style={-latex, line width=1.5pt, color=accent!60}
|
||||
]
|
||||
% Obere Reihe
|
||||
\node[stepnode, draw=gray] (n1) at (0,0) {};
|
||||
\node[stepnode, draw=green!60!black, right=of n1] (n2) {};
|
||||
|
||||
% Untere Reihe
|
||||
\node[stepnode, draw=blue!60!black, below=of n1] (n3) {};
|
||||
\node[stepnode, draw=orange, below=of n2] (n4) {};
|
||||
|
||||
% Icons – obere Reihe
|
||||
\node[iconnode] at (n1.north) [yshift=-0.7cm] {\color{gray}\small\faFile};
|
||||
\node[iconnode] at (n2.north) [yshift=-0.7cm] {\color{green!60!black}\small\faFilter};
|
||||
|
||||
% Icons – untere Reihe
|
||||
\node[iconnode] at (n3.north) [yshift=-0.7cm] {\color{blue!60!black}\small\faLock};
|
||||
\node[iconnode] at (n4.north) [yshift=-0.7cm] {\color{orange}\small\faUserShield};
|
||||
|
||||
% Labels
|
||||
\node[titlenode] at (n1.center) [yshift=-0.2cm] {Datenschutz-\\erkl\"{a}rung};
|
||||
\node[titlenode] at (n2.center) [yshift=-0.2cm] {Daten-\\minimierung};
|
||||
\node[titlenode] at (n3.center) [yshift=-0.2cm] {Vertrau-\\lichkeit};
|
||||
\node[titlenode] at (n4.center) [yshift=-0.2cm] {Betroffenen-\\rechte};
|
||||
|
||||
% Pfeile: → rechts oben, ↓ rechts, → rechts unten
|
||||
% \draw[arrow] (n1) -- (n2);
|
||||
% \draw[arrow] (n2) -- (n4);
|
||||
% \draw[arrow] (n3) -- (n4);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
|
||||
---
|
||||
|
||||
@@ -39,29 +141,9 @@
|
||||
- **Problem**: Datenverlust (Hardware, Software, Cyberangriffe).
|
||||
- **Lösung**: Vollautomatisiertes Backup-Skript.
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
Start((Start: Cronjob 02:30)) --> Init[Initialisierung]
|
||||
Init --> Vars[Konfiguration laden]
|
||||
\vspace{2em}
|
||||
|
||||
subgraph Sicherungsphase
|
||||
Dir[Erstelle Backup-Ordner] --> DB[Datenbank-Backup]
|
||||
DB --> Files[Dateisystem sichern]
|
||||
end
|
||||
|
||||
Files --> Check{Fehler?}
|
||||
Check -- Ja --> Mail[Log Error & Abbruch]
|
||||
Check -- Nein --> Rotate[Lade Backups-Liste]
|
||||
|
||||
subgraph Speicherverwaltung
|
||||
Rotate --> Count{Anzahl > 30?}
|
||||
Count -- Ja --> Delete[Älteste löschen]
|
||||
Count -- Nein --> Finish[Abschluss]
|
||||
Delete --> Finish
|
||||
end
|
||||
|
||||
Finish --> Ende((Ende))
|
||||
```
|
||||

|
||||
|
||||
---
|
||||
|
||||
@@ -82,7 +164,7 @@ graph LR
|
||||
- Abbau von Registrierungshürden.
|
||||
- Keine sensiblen Passwörter im eigenen System.
|
||||
|
||||

|
||||
{width=20em}
|
||||
|
||||
---
|
||||
|
||||
@@ -96,24 +178,7 @@ graph LR
|
||||
---
|
||||
|
||||
## Der Premium-Bereich (2)
|
||||
**Architektur des Premium-Bereich-Moduls:**
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph Client [WebAssembly]
|
||||
UI[Benutzeroberfläche] --> SvcC[Service Client]
|
||||
end
|
||||
|
||||
subgraph Server [ASP.NET Core]
|
||||
SvcC --> Ctrl[API Controller]
|
||||
Ctrl --> SvcS[Service Schicht]
|
||||
end
|
||||
|
||||
subgraph Data [Datenbank]
|
||||
SvcS --> EF[EF Core]
|
||||
EF --> DB[(PostgreSQL)]
|
||||
end
|
||||
```
|
||||
|
||||

|
||||
**Datensparsame Mitgliedersuche & Kontaktfunktion:**
|
||||

|
||||
|
||||
@@ -125,6 +190,7 @@ graph LR
|
||||
- Hohe Ausfallsicherheit (automatisierte Bash-Backups).
|
||||
- Barrierefreier Zugang (LinkedIn-Login).
|
||||
- Echter Mehrwert durch Premium-Funktionen.
|
||||
- **Ausblick**:
|
||||
- Weitere OAuth-Anbieter (z.B. Google, Microsoft).
|
||||
- Ausbau zukünftiger Premium-Features.
|
||||
- **Persönliche Learnings**:
|
||||
- Tiefes Verständnis für moderne Webtechnologien (ASP.NET, PostgreSQL, OAuth 2.0).
|
||||
- Agile Arbeitsweise mit Scrum stärkt Planung & Zeitmanagement.
|
||||
- Komplexe Projekte fördern Selbstorganisation & Problemlösungskompetenz.
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
# Adam Gaiswinkler
|
||||
|
||||
## Individueller Teil: Adam Gaiswinkler
|
||||
**CMS‑Modul & Frontend**
|
||||
**Entwicklung von CMS‑Modulen & Frontend-Design**
|
||||
|
||||
- **Schwerpunkt**:
|
||||
- Oqtane-Theme
|
||||
- Hall-of-Fame-Modul
|
||||
- Anmeldetool
|
||||
- **Ziel**:
|
||||
- Moderne, responsive Website für den SZU Absolventenverein
|
||||
|
||||
---
|
||||
|
||||
## Ausgangslage & Motivation
|
||||
- **Ausgangssituation**: Moderne Frontend‑Plattform für den Absolventenverein (responsive, neue Features).
|
||||
- **Persönliche Motivation**:
|
||||
- Team‑Verkleinerung (6 → 3) → mehr Verantwortung.
|
||||
- Team‑Verkleinerung (6 → 3) → mehr Verantwortung.
|
||||
- Projektidentifikation & Praxis‑Blazor/ASP.NET.
|
||||
- **Ziele**:
|
||||
- Oqtane‑Module (Anmeldetool, Hall‑of‑Fame).
|
||||
@@ -17,49 +24,188 @@
|
||||
---
|
||||
|
||||
## Eingesetzte Technologien
|
||||
- **Tech‑Stack**: Bootstrap + Custom‑CSS, QuestPDF, Gitea, VS 2022 wechsel zu VS Code (macOS).
|
||||
|
||||
::: columns
|
||||
|
||||
:::: column
|
||||
- **Tech‑Stack**:
|
||||
- Bootstrap
|
||||
- Custom‑CSS
|
||||
- QuestPDF
|
||||
- Gitea
|
||||
- Visual Studio 2022 → Visual Studio Code (macOS).
|
||||
::::
|
||||
|
||||
:::: column
|
||||
\begin{tikzpicture}
|
||||
\node[inner sep=0pt, rounded corners=5pt, clip] {\includegraphics[width=0.8\columnwidth]{Images/Technologien.png}};
|
||||
\end{tikzpicture}
|
||||
::::
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Umsetzung: Oqtane Theme
|
||||
- Eigen‑Navigation (bootstrap Komponenten haben nicht gepasst ).
|
||||
## Oqtane Theme
|
||||
|
||||
::: columns
|
||||
|
||||
:::: column
|
||||
- Eigen‑Navigation (Bootstrap-Komponenten haben nicht gepasst).
|
||||
- Systemseiten per LINQ ausblenden.
|
||||
- Responsive CSS‑Media‑Queries + reines CSS‑Burger‑Menu.
|
||||
- ControlPanel & Cookie‑Consent.
|
||||
- Cookie‑Consent (erforderlich für DSGVO-Konformität und Gesamtheit der Website).
|
||||
::::
|
||||
|
||||
:::: column
|
||||
\begin{tikzpicture}
|
||||
\node[inner sep=0pt, rounded corners=5pt, clip] {\includegraphics[width=0.55\columnwidth]{Images/BurgerMenuLiveDesign.png}};
|
||||
\end{tikzpicture}
|
||||
::::
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
## Hall of Fame
|
||||
|
||||
::: columns
|
||||
|
||||
:::: column
|
||||
- **Karten‑Grid**: Responsive Übersicht, Live‑Suche & Sortierung **in Echtzeit – kein Seitenreload** (Blazor).
|
||||
- **Detail‑Seite**: Glasmorphismus‑Design (halbtransparente Karten mit Blur-Effekt).
|
||||
::::
|
||||
|
||||
:::: column
|
||||
\begin{tikzpicture}
|
||||
\node[inner sep=0pt, rounded corners=5pt, clip] {\includegraphics[width=0.55\columnwidth]{Images/HallOfFamePdfNeuBesser.png}};
|
||||
\end{tikzpicture}
|
||||
::::
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Umsetzung: Anmeldetool
|
||||
- Klar getrennte Ja/Nein‑Buttons.
|
||||
- Live‑Status‑Updates via Blazor.
|
||||
- UI‑Overlay, mobile‑freundlich.
|
||||
## Hall of Fame – Workflow & Export
|
||||
|
||||
::: columns
|
||||
|
||||
:::: column
|
||||
- **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.
|
||||
::::
|
||||
|
||||
:::: column
|
||||
\begin{tikzpicture}[
|
||||
node distance=12mm,
|
||||
every node/.style={font=\small},
|
||||
state/.style={rectangle, rounded corners=3pt, draw=accent, fill=accent!10, minimum width=2.4cm, minimum height=8mm, align=center, font=\small\bfseries},
|
||||
arr/.style={->,>=stealth,thick,accent}
|
||||
]
|
||||
\node[coordinate] (start) {};
|
||||
\node[state, right=10mm of start] (draft) {Entwurf};
|
||||
\node[state, below=18mm of draft] (pub) {Veröffentlicht};
|
||||
\draw[arr] (start) -- node[above] {\scriptsize Erstellen} (draft);
|
||||
\draw[arr] (draft) to[out=135, in=45, looseness=4] node[above] {\scriptsize Speichern} (draft);
|
||||
\draw[arr, bend left=25] (draft) to node[right] {\scriptsize Veröffentlichen} (pub);
|
||||
\draw[arr, bend left=25] (pub) to node[left] {\scriptsize Zurückziehen} (draft);
|
||||
\end{tikzpicture}
|
||||
::::
|
||||
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Anmeldetool
|
||||
\vspace{1cm}
|
||||
\begin{tikzpicture}[remember picture, overlay]
|
||||
\node at (current page.center) {
|
||||
\begin{tabular}{@{}c@{\hspace{4mm}}c@{}}
|
||||
\begin{tcolorbox}[colback=accent!5, colframe=accent, arc=3pt, title=\textbf{UI}, width=6.5cm, height=2cm, valign=center]
|
||||
\centering Ja/Nein-Buttons (grün/rot)
|
||||
\end{tcolorbox}
|
||||
&
|
||||
\begin{tcolorbox}[colback=accent!5, colframe=accent, arc=3pt, title=\textbf{Live-Feedback}, width=6.5cm, height=2cm, valign=center]
|
||||
\centering Sofort via Blazor
|
||||
\end{tcolorbox}
|
||||
\\[3mm]
|
||||
\begin{tcolorbox}[colback=accent!5, colframe=accent, arc=3pt, title=\textbf{Mobile}, width=6.5cm, height=2cm, valign=center]
|
||||
\centering Sauberes Touch-Handling
|
||||
\end{tcolorbox}
|
||||
&
|
||||
\begin{tcolorbox}[colback=accent!5, colframe=accent, arc=3pt, title=\textbf{Architektur}, width=6.5cm, height=2cm, valign=center]
|
||||
\centering UI \& Backend-API getrennt
|
||||
\end{tcolorbox}
|
||||
\end{tabular}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
---
|
||||
|
||||
## Herausforderungen & Lösungen
|
||||
- **Plattformwechsel**: Windows → macOS → JetBrains Rider.
|
||||
- **Hosting‑Probleme**: Node.js/HTML‑Übergangslösung 2025.
|
||||
|
||||
\vspace{5mm}
|
||||
\begin{tikzpicture}[remember picture, overlay,
|
||||
problem/.style={rectangle, rounded corners=3pt, draw=red!60!black, fill=red!8, minimum width=5cm, minimum height=1.4cm, align=center, font=\small},
|
||||
solution/.style={rectangle, rounded corners=3pt, draw=green!60!black, fill=green!8, minimum width=5cm, minimum height=1.4cm, align=center, font=\small},
|
||||
header/.style={font=\small\bfseries\color{gray!70!black}},
|
||||
arrow/.style={-latex, line width=1.5pt, color=accent!70}
|
||||
]
|
||||
% Spalten-Header
|
||||
\node[header] at ([xshift=-2.5cm, yshift=2.2cm]current page.center) {Herausforderung};
|
||||
\node[header] at ([xshift=4cm, yshift=2.2cm]current page.center) {Lösung};
|
||||
|
||||
% Reihe 1
|
||||
\node[problem] at ([xshift=-2.5cm, yshift=0.9cm]current page.center) (p1) {$\triangle$\;\textbf{Plattformwechsel}\\[-1mm]{\scriptsize Windows $\rightarrow$ macOS}};
|
||||
\node[solution] at ([xshift=4cm, yshift=0.9cm]current page.center) (s1) {\checkmark\;\textbf{Visual Studio Code}\\[-1mm]{\scriptsize Plattformübergreifend}};
|
||||
|
||||
% Reihe 2
|
||||
\node[problem] at ([xshift=-2.5cm, yshift=-1.1cm]current page.center) (p2) {$\triangle$\;\textbf{Kein CMS verfügbar}\\[-1mm]{\scriptsize Sommer 2025, Event steht an}};
|
||||
\node[solution] at ([xshift=4cm, yshift=-1.1cm]current page.center) (s2) {\checkmark\;\textbf{Node.js/HTML}\\[-1mm]{\scriptsize Übergangslösung}};
|
||||
|
||||
% Reihe 3
|
||||
\node[problem] at ([xshift=-2.5cm, yshift=-3.1cm]current page.center) (p3) {$\triangle$\;\textbf{UI-Fehler am Handy}\\[-1mm]{\scriptsize Clipping-Probleme}};
|
||||
\node[solution] at ([xshift=4cm, yshift=-3.1cm]current page.center) (s3) {\checkmark\;\textbf{Testen und Anpassen}\\[-1mm]{\scriptsize Debuggen und Verbessern der UI}};
|
||||
|
||||
\draw[arrow] (p1) -- (s1);
|
||||
\draw[arrow] (p2) -- (s2);
|
||||
\draw[arrow] (p3) -- (s3);
|
||||
\end{tikzpicture}
|
||||
|
||||
---
|
||||
|
||||
## Learnings
|
||||
- **Technisch**: Git, CSS‑Flexbox, Blazor.
|
||||
- **Methodisch**: Aufgabenverteilung, regelmäßige Meetings.
|
||||
- **Persönlich**: Eigeninitiative & Verantwortung.
|
||||
|
||||
---
|
||||
\vspace{1cm}
|
||||
\begin{tikzpicture}[remember picture, overlay,
|
||||
every node/.style={font=\small},
|
||||
branch/.style={thick, accent},
|
||||
cat/.style={rectangle, rounded corners=3pt, draw=accent, fill=accent!15, font=\small\bfseries, minimum height=7mm, align=center},
|
||||
item/.style={font=\scriptsize, align=left}
|
||||
]
|
||||
\node[circle, draw=accent, fill=accent!20, font=\bfseries, minimum size=1.5cm] at (current page.center) (center) {Learnings};
|
||||
|
||||
% Technisch - links
|
||||
\node[cat] at ([xshift=-3.5cm, yshift=0.8cm]current page.center) (tech) {Technisch};
|
||||
\draw[branch] (center) -- (tech);
|
||||
\node[item, anchor=east] at ([xshift=-1mm, yshift=5mm]tech.west) {Git};
|
||||
\node[item, anchor=east] at ([xshift=-1mm]tech.west) {CSS-Flexbox};
|
||||
\node[item, anchor=east] at ([xshift=-1mm, yshift=-5mm]tech.west) {Blazor};
|
||||
|
||||
% Methodisch - rechts oben
|
||||
\node[cat] at ([xshift=3.5cm, yshift=0.8cm]current page.center) (meth) {Methodisch};
|
||||
\draw[branch] (center) -- (meth);
|
||||
\node[item, anchor=west] at ([xshift=1mm, yshift=3mm]meth.east) {Aufgaben-};
|
||||
\node[item, anchor=west] at ([xshift=1mm, yshift=-3mm]meth.east) {verteilung};
|
||||
\node[item, anchor=west] at ([xshift=1mm, yshift=-9mm]meth.east) {Meetings};
|
||||
|
||||
% Persönlich - unten
|
||||
\node[cat] at ([yshift=-2cm]current page.center) (pers) {Persönlich};
|
||||
\draw[branch] (center) -- (pers);
|
||||
\node[item] at ([yshift=-7mm]pers.south) {Eigeninitiative \& Verantwortung};
|
||||
\end{tikzpicture}
|
||||
|
||||
|
||||
## Fazit & Ausblick
|
||||
- Theme final, mobil, Hall of Fame & Anmeldetool funktionsfähig.
|
||||
- **Erweiterungen**: Teilnehmer‑Auswertung, Anmelde‑Limit, automatische E‑Mail‑Erinnerungen.
|
||||
|
||||
|
||||
|
||||
BIN
Defensio/Images/BurgerMenuLiveDesign.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
Defensio/Images/HallOfFame.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
Defensio/Images/HallOfFameBeispiel.png
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
BIN
Defensio/Images/HallOfFamePdfNeuBesser.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
Defensio/Images/Technologien.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 352 KiB |
BIN
Defensio/Images/images/florian/image-1.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
Defensio/Images/images/florian/image-2.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
Defensio/Images/images/florian/image-3.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
Defensio/Images/images/florian/image-4.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
Defensio/Images/images/florian/image.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
Defensio/Images/images/konstantin/BlackBoard-Overview.png
Normal file
|
After Width: | Height: | Size: 227 KiB |
BIN
Defensio/Images/images/konstantin/Brevo.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
Defensio/Images/images/konstantin/EventRegistration-PieChart.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
Defensio/Images/images/konstantin/GiteaActions-Overview.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
Defensio/Images/images/konstantin/GiteaIssues-TaskBoard.png
Normal file
|
After Width: | Height: | Size: 459 KiB |
BIN
Defensio/Images/images/konstantin/GiteaPackageRepository.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
BIN
Defensio/Images/images/konstantin/ReportingSystem.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
Defensio/Images/images/konstantin/logos/debian.pdf
Normal file
86
Defensio/Images/images/konstantin/logos/debian.svg
Normal file
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 77) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
|
||||
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
|
||||
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
|
||||
]>
|
||||
<svg
|
||||
xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;" i:viewOrigin="262 450" i:rulerOrigin="0 0" i:pageBounds="0 792 612 0"
|
||||
xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
|
||||
width="87.041" height="108.445" viewBox="0 0 87.041 108.445" overflow="visible" enable-background="new 0 0 87.041 108.445"
|
||||
xml:space="preserve">
|
||||
<metadata>
|
||||
<variableSets xmlns="&ns_vars;">
|
||||
<variableSet varSetName="binding1" locked="none">
|
||||
<variables></variables>
|
||||
<v:sampleDataSets xmlns="&ns_custom;" xmlns:v="&ns_vars;"></v:sampleDataSets>
|
||||
</variableSet>
|
||||
</variableSets>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds y="341.555" x="262" width="87.041" height="108.445" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g id="Layer_1" i:layer="yes" i:dimmedPercent="50" i:rgbTrio="#4F008000FFFF">
|
||||
<g>
|
||||
<path i:knockout="Off" fill="#A80030" d="M51.986,57.297c-1.797,0.025,0.34,0.926,2.686,1.287
|
||||
c0.648-0.506,1.236-1.018,1.76-1.516C54.971,57.426,53.484,57.434,51.986,57.297"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M61.631,54.893c1.07-1.477,1.85-3.094,2.125-4.766c-0.24,1.192-0.887,2.221-1.496,3.307
|
||||
c-3.359,2.115-0.316-1.256-0.002-2.537C58.646,55.443,61.762,53.623,61.631,54.893"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M65.191,45.629c0.217-3.236-0.637-2.213-0.924-0.978
|
||||
C64.602,44.825,64.867,46.932,65.191,45.629"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M45.172,1.399c0.959,0.172,2.072,0.304,1.916,0.533
|
||||
C48.137,1.702,48.375,1.49,45.172,1.399"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M47.088,1.932l-0.678,0.14l0.631-0.056L47.088,1.932"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M76.992,46.856c0.107,2.906-0.85,4.316-1.713,6.812l-1.553,0.776
|
||||
c-1.271,2.468,0.123,1.567-0.787,3.53c-1.984,1.764-6.021,5.52-7.313,5.863c-0.943-0.021,0.639-1.113,0.846-1.541
|
||||
c-2.656,1.824-2.131,2.738-6.193,3.846l-0.119-0.264c-10.018,4.713-23.934-4.627-23.751-17.371
|
||||
c-0.107,0.809-0.304,0.607-0.526,0.934c-0.517-6.557,3.028-13.143,9.007-15.832c5.848-2.895,12.704-1.707,16.893,2.197
|
||||
c-2.301-3.014-6.881-6.209-12.309-5.91c-5.317,0.084-10.291,3.463-11.951,7.131c-2.724,1.715-3.04,6.611-4.227,7.507
|
||||
C31.699,56.271,36.3,61.342,44.083,67.307c1.225,0.826,0.345,0.951,0.511,1.58c-2.586-1.211-4.954-3.039-6.901-5.277
|
||||
c1.033,1.512,2.148,2.982,3.589,4.137c-2.438-0.826-5.695-5.908-6.646-6.115c4.203,7.525,17.052,13.197,23.78,10.383
|
||||
c-3.113,0.115-7.068,0.064-10.566-1.229c-1.469-0.756-3.467-2.322-3.11-2.615c9.182,3.43,18.667,2.598,26.612-3.771
|
||||
c2.021-1.574,4.229-4.252,4.867-4.289c-0.961,1.445,0.164,0.695-0.574,1.971c2.014-3.248-0.875-1.322,2.082-5.609l1.092,1.504
|
||||
c-0.406-2.696,3.348-5.97,2.967-10.234c0.861-1.304,0.961,1.403,0.047,4.403c1.268-3.328,0.334-3.863,0.66-6.609
|
||||
c0.352,0.923,0.814,1.904,1.051,2.878c-0.826-3.216,0.848-5.416,1.262-7.285c-0.408-0.181-1.275,1.422-1.473-2.377
|
||||
c0.029-1.65,0.459-0.865,0.625-1.271c-0.324-0.186-1.174-1.451-1.691-3.877c0.375-0.57,1.002,1.478,1.512,1.562
|
||||
c-0.328-1.929-0.893-3.4-0.916-4.88c-1.49-3.114-0.527,0.415-1.736-1.337c-1.586-4.947,1.316-1.148,1.512-3.396
|
||||
c2.404,3.483,3.775,8.881,4.404,11.117c-0.48-2.726-1.256-5.367-2.203-7.922c0.73,0.307-1.176-5.609,0.949-1.691
|
||||
c-2.27-8.352-9.715-16.156-16.564-19.818c0.838,0.767,1.896,1.73,1.516,1.881c-3.406-2.028-2.807-2.186-3.295-3.043
|
||||
c-2.775-1.129-2.957,0.091-4.795,0.002c-5.23-2.774-6.238-2.479-11.051-4.217l0.219,1.023c-3.465-1.154-4.037,0.438-7.782,0.004
|
||||
c-0.228-0.178,1.2-0.644,2.375-0.815c-3.35,0.442-3.193-0.66-6.471,0.122c0.808-0.567,1.662-0.942,2.524-1.424
|
||||
c-2.732,0.166-6.522,1.59-5.352,0.295c-4.456,1.988-12.37,4.779-16.811,8.943l-0.14-0.933c-2.035,2.443-8.874,7.296-9.419,10.46
|
||||
l-0.544,0.127c-1.059,1.793-1.744,3.825-2.584,5.67c-1.385,2.36-2.03,0.908-1.833,1.278c-2.724,5.523-4.077,10.164-5.246,13.97
|
||||
c0.833,1.245,0.02,7.495,0.335,12.497c-1.368,24.704,17.338,48.69,37.785,54.228c2.997,1.072,7.454,1.031,11.245,1.141
|
||||
c-4.473-1.279-5.051-0.678-9.408-2.197c-3.143-1.48-3.832-3.17-6.058-5.102l0.881,1.557c-4.366-1.545-2.539-1.912-6.091-3.037
|
||||
l0.941-1.229c-1.415-0.107-3.748-2.385-4.386-3.646l-1.548,0.061c-1.86-2.295-2.851-3.949-2.779-5.23l-0.5,0.891
|
||||
c-0.567-0.973-6.843-8.607-3.587-6.83c-0.605-0.553-1.409-0.9-2.281-2.484l0.663-0.758c-1.567-2.016-2.884-4.6-2.784-5.461
|
||||
c0.836,1.129,1.416,1.34,1.99,1.533c-3.957-9.818-4.179-0.541-7.176-9.994l0.634-0.051c-0.486-0.732-0.781-1.527-1.172-2.307
|
||||
l0.276-2.75C4.667,58.121,6.719,47.409,7.13,41.534c0.285-2.389,2.378-4.932,3.97-8.92l-0.97-0.167
|
||||
c1.854-3.234,10.586-12.988,14.63-12.486c1.959-2.461-0.389-0.009-0.772-0.629c4.303-4.453,5.656-3.146,8.56-3.947
|
||||
c3.132-1.859-2.688,0.725-1.203-0.709c5.414-1.383,3.837-3.144,10.9-3.846c0.745,0.424-1.729,0.655-2.35,1.205
|
||||
c4.511-2.207,14.275-1.705,20.617,1.225c7.359,3.439,15.627,13.605,15.953,23.17l0.371,0.1
|
||||
c-0.188,3.802,0.582,8.199-0.752,12.238L76.992,46.856"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M32.372,59.764l-0.252,1.26c1.181,1.604,2.118,3.342,3.626,4.596
|
||||
C34.661,63.502,33.855,62.627,32.372,59.764"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M35.164,59.654c-0.625-0.691-0.995-1.523-1.409-2.352
|
||||
c0.396,1.457,1.207,2.709,1.962,3.982L35.164,59.654"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M84.568,48.916l-0.264,0.662c-0.484,3.438-1.529,6.84-3.131,9.994
|
||||
C82.943,56.244,84.088,52.604,84.568,48.916"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M45.527,0.537C46.742,0.092,48.514,0.293,49.803,0c-1.68,0.141-3.352,0.225-5.003,0.438
|
||||
L45.527,0.537"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M2.872,23.219c0.28,2.592-1.95,3.598,0.494,1.889
|
||||
C4.676,22.157,2.854,24.293,2.872,23.219"/>
|
||||
<path i:knockout="Off" fill="#A80030" d="M0,35.215c0.563-1.728,0.665-2.766,0.88-3.766C-0.676,33.438,0.164,33.862,0,35.215"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
BIN
Defensio/Images/images/konstantin/logos/docker.pdf
Normal file
25
Defensio/Images/images/konstantin/logos/docker.svg
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 340 268">
|
||||
<!-- Generator: Adobe Illustrator 30.1.0, SVG Export Plug-In . SVG Version: 2.1.1 Build 136) -->
|
||||
<defs>
|
||||
<style>
|
||||
.st0 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.st1 {
|
||||
fill: #2560ff;
|
||||
}
|
||||
|
||||
.st2 {
|
||||
clip-path: url(#clippath);
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clippath">
|
||||
<rect class="st0" width="339.5" height="268"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g class="st2">
|
||||
<path class="st1" d="M334,110.1c-8.3-5.6-30.2-8-46.1-3.7-.9-15.8-9-29.2-24-40.8l-5.5-3.7-3.7,5.6c-7.2,11-10.3,25.7-9.2,39,.8,8.2,3.7,17.4,9.2,24.1-20.7,12-39.8,9.3-124.3,9.3H0c-.4,19.1,2.7,55.8,26,85.6,2.6,3.3,5.4,6.5,8.5,9.6,19,19,47.6,32.9,90.5,33,65.4,0,121.4-35.3,155.5-120.8,11.2.2,40.8,2,55.3-26,.4-.5,3.7-7.4,3.7-7.4l-5.5-3.7h0ZM85.2,92.7h-36.7v36.7h36.7v-36.7ZM132.6,92.7h-36.7v36.7h36.7v-36.7ZM179.9,92.7h-36.7v36.7h36.7v-36.7ZM227.3,92.7h-36.7v36.7h36.7v-36.7ZM37.8,92.7H1.1v36.7h36.7v-36.7ZM85.2,46.3h-36.7v36.7h36.7v-36.7ZM132.6,46.3h-36.7v36.7h36.7v-36.7ZM179.9,46.3h-36.7v36.7h36.7v-36.7ZM179.9,0h-36.7v36.7h36.7V0Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Defensio/Images/images/konstantin/logos/gitea.pdf
Normal file
31
Defensio/Images/images/konstantin/logos/gitea.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" viewBox="0 0 640 640" style="enable-background:new 0 0 640 640;" xml:space="preserve">
|
||||
<g>
|
||||
<path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8
|
||||
c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4
|
||||
c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2
|
||||
c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5
|
||||
c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5
|
||||
c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3
|
||||
c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1
|
||||
C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4
|
||||
c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7
|
||||
S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55
|
||||
c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8
|
||||
l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"/>
|
||||
<path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4
|
||||
c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1
|
||||
c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9
|
||||
c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3
|
||||
c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3
|
||||
c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29
|
||||
c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8
|
||||
C343.2,346.5,335,363.3,326.8,380.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
BIN
Defensio/Images/images/konstantin/logos/github.pdf
Normal file
10
Defensio/Images/images/konstantin/logos/github.svg
Executable file
@@ -0,0 +1,10 @@
|
||||
<svg width="98" height="96" viewBox="0 0 98 96" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_730_27126)">
|
||||
<path d="M41.4395 69.3848C28.8066 67.8535 19.9062 58.7617 19.9062 46.9902C19.9062 42.2051 21.6289 37.0371 24.5 33.5918C23.2559 30.4336 23.4473 23.7344 24.8828 20.959C28.7109 20.4805 33.8789 22.4902 36.9414 25.2656C40.5781 24.1172 44.4062 23.543 49.0957 23.543C53.7852 23.543 57.6133 24.1172 61.0586 25.1699C64.0254 22.4902 69.2891 20.4805 73.1172 20.959C74.457 23.543 74.6484 30.2422 73.4043 33.4961C76.4668 37.1328 78.0937 42.0137 78.0937 46.9902C78.0937 58.7617 69.1934 67.6621 56.3691 69.2891C59.623 71.3945 61.8242 75.9883 61.8242 81.252L61.8242 91.2051C61.8242 94.0762 64.2168 95.7031 67.0879 94.5547C84.4102 87.9512 98 70.6289 98 49.1914C98 22.1074 75.9883 6.69539e-07 48.9043 4.309e-07C21.8203 1.92261e-07 -1.9479e-07 22.1074 -4.3343e-07 49.1914C-6.20631e-07 70.4375 13.4941 88.0469 31.6777 94.6504C34.2617 95.6074 36.75 93.8848 36.75 91.3008L36.75 83.6445C35.4102 84.2188 33.6875 84.6016 32.1562 84.6016C25.8398 84.6016 22.1074 81.1563 19.4277 74.7441C18.375 72.1602 17.2266 70.6289 15.0254 70.3418C13.877 70.2461 13.4941 69.7676 13.4941 69.1934C13.4941 68.0449 15.4082 67.1836 17.3223 67.1836C20.0977 67.1836 22.4902 68.9063 24.9785 72.4473C26.8926 75.2227 28.9023 76.4668 31.2949 76.4668C33.6875 76.4668 35.2187 75.6055 37.4199 73.4043C39.0469 71.7773 40.291 70.3418 41.4395 69.3848Z" fill="black"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_730_27126">
|
||||
<rect width="98" height="96" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Defensio/Images/images/konstantin/logos/nginx.pdf
Normal file
2
Defensio/Images/images/konstantin/logos/nginx.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>file_type_nginx</title><path d="M15.948,2h.065a10.418,10.418,0,0,1,.972.528Q22.414,5.65,27.843,8.774a.792.792,0,0,1,.414.788c-.008,4.389,0,8.777-.005,13.164a.813.813,0,0,1-.356.507q-5.773,3.324-11.547,6.644a.587.587,0,0,1-.657.037Q9.912,26.6,4.143,23.274a.7.7,0,0,1-.4-.666q0-6.582,0-13.163a.693.693,0,0,1,.387-.67Q9.552,5.657,14.974,2.535c.322-.184.638-.379.974-.535" style="fill:#019639"/><path d="M8.767,10.538q0,5.429,0,10.859a1.509,1.509,0,0,0,.427,1.087,1.647,1.647,0,0,0,2.06.206,1.564,1.564,0,0,0,.685-1.293c0-2.62-.005-5.24,0-7.86q3.583,4.29,7.181,8.568a2.833,2.833,0,0,0,2.6.782,1.561,1.561,0,0,0,1.251-1.371q.008-5.541,0-11.081a1.582,1.582,0,0,0-3.152,0c0,2.662-.016,5.321,0,7.982-2.346-2.766-4.663-5.556-7-8.332A2.817,2.817,0,0,0,10.17,9.033,1.579,1.579,0,0,0,8.767,10.538Z" style="fill:#fff"/></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
BIN
Defensio/Images/images/konstantin/logos/oqtane.pdf
Normal file
19
Defensio/Images/images/konstantin/logos/oqtane.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="200.000000pt" height="200.000000pt" viewBox="0 0 200.000000 200.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,200.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M994 1922 c-6 -4 -25 -50 -44 -102 -80 -218 -210 -455 -391 -712 -49
|
||||
-70 -100 -151 -114 -180 -105 -226 -53 -507 126 -686 190 -188 468 -234 709
|
||||
-116 104 51 223 170 274 274 84 172 86 367 7 532 -16 35 -72 122 -123 193 -52
|
||||
72 -111 161 -133 198 -21 37 -42 67 -46 67 -3 0 -46 -61 -94 -136 l-88 -136
|
||||
106 -156 c57 -87 110 -172 116 -191 16 -50 13 -150 -6 -207 -23 -69 -110 -155
|
||||
-182 -179 -68 -22 -144 -22 -212 0 -74 25 -159 110 -183 183 -19 57 -22 148
|
||||
-7 200 6 19 116 193 246 387 129 195 235 358 235 363 0 5 -22 56 -49 113 -27
|
||||
57 -64 145 -81 196 -31 88 -46 109 -66 95z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1008 B |
BIN
Defensio/Images/images/konstantin/logos/postgres.pdf
Normal file
22
Defensio/Images/images/konstantin/logos/postgres.svg
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
|
||||
<svg width="432.071pt" height="445.383pt" viewBox="0 0 432.071 445.383" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="orginal" style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
</g>
|
||||
<g id="Layer_x0020_3" style="fill-rule:nonzero;clip-rule:nonzero;fill:none;stroke:#FFFFFF;stroke-width:12.4651;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;">
|
||||
<path style="fill:#000000;stroke:#000000;stroke-width:37.3953;stroke-linecap:butt;stroke-linejoin:miter;" d="M323.205,324.227c2.833-23.601,1.984-27.062,19.563-23.239l4.463,0.392c13.517,0.615,31.199-2.174,41.587-7c22.362-10.376,35.622-27.7,13.572-23.148c-50.297,10.376-53.755-6.655-53.755-6.655c53.111-78.803,75.313-178.836,56.149-203.322 C352.514-5.534,262.036,26.049,260.522,26.869l-0.482,0.089c-9.938-2.062-21.06-3.294-33.554-3.496c-22.761-0.374-40.032,5.967-53.133,15.904c0,0-161.408-66.498-153.899,83.628c1.597,31.936,45.777,241.655,98.47,178.31 c19.259-23.163,37.871-42.748,37.871-42.748c9.242,6.14,20.307,9.272,31.912,8.147l0.897-0.765c-0.281,2.876-0.157,5.689,0.359,9.019c-13.572,15.167-9.584,17.83-36.723,23.416c-27.457,5.659-11.326,15.734-0.797,18.367c12.768,3.193,42.305,7.716,62.268-20.224 l-0.795,3.188c5.325,4.26,4.965,30.619,5.72,49.452c0.756,18.834,2.017,36.409,5.856,46.771c3.839,10.36,8.369,37.05,44.036,29.406c29.809-6.388,52.6-15.582,54.677-101.107"/>
|
||||
<path style="fill:#336791;stroke:none;" d="M402.395,271.23c-50.302,10.376-53.76-6.655-53.76-6.655c53.111-78.808,75.313-178.843,56.153-203.326c-52.27-66.785-142.752-35.2-144.262-34.38l-0.486,0.087c-9.938-2.063-21.06-3.292-33.56-3.496c-22.761-0.373-40.026,5.967-53.127,15.902 c0,0-161.411-66.495-153.904,83.63c1.597,31.938,45.776,241.657,98.471,178.312c19.26-23.163,37.869-42.748,37.869-42.748c9.243,6.14,20.308,9.272,31.908,8.147l0.901-0.765c-0.28,2.876-0.152,5.689,0.361,9.019c-13.575,15.167-9.586,17.83-36.723,23.416 c-27.459,5.659-11.328,15.734-0.796,18.367c12.768,3.193,42.307,7.716,62.266-20.224l-0.796,3.188c5.319,4.26,9.054,27.711,8.428,48.969c-0.626,21.259-1.044,35.854,3.147,47.254c4.191,11.4,8.368,37.05,44.042,29.406c29.809-6.388,45.256-22.942,47.405-50.555 c1.525-19.631,4.976-16.729,5.194-34.28l2.768-8.309c3.192-26.611,0.507-35.196,18.872-31.203l4.463,0.392c13.517,0.615,31.208-2.174,41.591-7c22.358-10.376,35.618-27.7,13.573-23.148z"/>
|
||||
<path d="M215.866,286.484c-1.385,49.516,0.348,99.377,5.193,111.495c4.848,12.118,15.223,35.688,50.9,28.045c29.806-6.39,40.651-18.756,45.357-46.051c3.466-20.082,10.148-75.854,11.005-87.281"/>
|
||||
<path d="M173.104,38.256c0,0-161.521-66.016-154.012,84.109c1.597,31.938,45.779,241.664,98.473,178.316c19.256-23.166,36.671-41.335,36.671-41.335"/>
|
||||
<path d="M260.349,26.207c-5.591,1.753,89.848-34.889,144.087,34.417c19.159,24.484-3.043,124.519-56.153,203.329"/>
|
||||
<path style="stroke-linejoin:bevel;" d="M348.282,263.953c0,0,3.461,17.036,53.764,6.653c22.04-4.552,8.776,12.774-13.577,23.155c-18.345,8.514-59.474,10.696-60.146-1.069c-1.729-30.355,21.647-21.133,19.96-28.739c-1.525-6.85-11.979-13.573-18.894-30.338 c-6.037-14.633-82.796-126.849,21.287-110.183c3.813-0.789-27.146-99.002-124.553-100.599c-97.385-1.597-94.19,119.762-94.19,119.762"/>
|
||||
<path d="M188.604,274.334c-13.577,15.166-9.584,17.829-36.723,23.417c-27.459,5.66-11.326,15.733-0.797,18.365c12.768,3.195,42.307,7.718,62.266-20.229c6.078-8.509-0.036-22.086-8.385-25.547c-4.034-1.671-9.428-3.765-16.361,3.994z"/>
|
||||
<path d="M187.715,274.069c-1.368-8.917,2.93-19.528,7.536-31.942c6.922-18.626,22.893-37.255,10.117-96.339c-9.523-44.029-73.396-9.163-73.436-3.193c-0.039,5.968,2.889,30.26-1.067,58.548c-5.162,36.913,23.488,68.132,56.479,64.938"/>
|
||||
<path style="fill:#FFFFFF;stroke-width:4.155;stroke-linecap:butt;stroke-linejoin:miter;" d="M172.517,141.7c-0.288,2.039,3.733,7.48,8.976,8.207c5.234,0.73,9.714-3.522,9.998-5.559c0.284-2.039-3.732-4.285-8.977-5.015c-5.237-0.731-9.719,0.333-9.996,2.367z"/>
|
||||
<path style="fill:#FFFFFF;stroke-width:2.0775;stroke-linecap:butt;stroke-linejoin:miter;" d="M331.941,137.543c0.284,2.039-3.732,7.48-8.976,8.207c-5.238,0.73-9.718-3.522-10.005-5.559c-0.277-2.039,3.74-4.285,8.979-5.015c5.239-0.73,9.718,0.333,10.002,2.368z"/>
|
||||
<path d="M350.676,123.432c0.863,15.994-3.445,26.888-3.988,43.914c-0.804,24.748,11.799,53.074-7.191,81.435"/>
|
||||
<path style="stroke-width:3;" d="M0,60.232"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
BIN
Defensio/Images/images/konstantin/logos/wireguard.pdf
Normal file
2
Defensio/Images/images/konstantin/logos/wireguard.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="400" height="400" version="1.1" viewBox="0 0 400 400" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="a"><path d="m0 300h300v-300h-300z"/></clipPath></defs><g transform="matrix(1.3333 0 0 -1.3333 0 400)"><g clip-path="url(#a)"><g transform="translate(177.57 268.56)"><path d="m0 0c0.969-0.066 2.097 0.81 3.987 1.635-1.862 0.802-2.973 1.655-3.939 1.593-0.996-0.063-2.592-1.031-2.567-1.578 0.027-0.603 1.532-1.583 2.519-1.65" fill="#871719"/></g><g transform="translate(179.32 268.11)"><path d="m0 0c0.969-0.066 2.097 0.81 3.987 1.635-1.862 0.802-2.973 1.655-3.939 1.593-0.996-0.063-2.592-1.031-2.567-1.578 0.027-0.603 1.532-1.583 2.519-1.65" fill="#871719"/></g><g transform="translate(299.74 154.44)"><path d="m0 0s6.94 145.56-153.04 145.56c-141.48 0-145.9-139.63-145.9-139.63s-20.811-160.37 149.16-160.37c163.02 0 149.78 154.44 149.78 154.44" fill="#871719"/></g><g transform="translate(133.86 128.17)"><path d="m0 0c-2.627-1.39-4.65-2.414-6.63-3.517-8.1-4.512-15.026-10.419-20.544-17.868-1.784-2.409-3.01-2.603-5.727-0.941-35.338 21.61-37.609 75.843 0.983 99.453 30.017 18.364 68.365 7.14 82.735-20.477 2.723-5.234 3.069-13.291 1.345-18.782-5.955-18.955-20.015-29.586-39.313-34.102 5.689 4.87 10.218 10.393 11.659 18.025 1.452 7.687-0.084 14.638-4.542 20.956-6.773 9.596-19.868 13.544-30.811 9.389-11.881-4.511-18.39-15.354-17.216-28.683 1.09-12.381 10.484-20.405 28.061-23.453" fill="#fff"/></g><g transform="translate(58.513 66.293)"><path d="M 0,0 C 2.838,19.152 25.265,36.788 44.23,34.776 38.356,26.832 35.643,17.846 34.988,8.883 28.686,7.722 22.747,6.941 16.981,5.478 11.304,4.037 5.803,1.903 0,0" fill="#fff"/></g><g transform="translate(183.79 273.09)"><path d="m0 0c1.061 0.812 2.155 1.494 3.472 0.408 0.75-0.617 1.478-1.257 2.386-2.032-1.127-0.595-2.042-1.096-2.975-1.567-1.306-0.658-2.282-0.218-3.072 0.822-0.642 0.844-0.757 1.645 0.189 2.369m15.447-157.8c-1.598 1.382-2.611 1.381-4.485 0.182-6.359-4.068-12.867-7.922-19.481-11.562-3.792-2.086-7.898-3.599-12.653-5.724 1.633-0.421 2.418-0.619 3.201-0.827 17.776-4.73 27.272-20.335 23.065-37.813-3.741-15.544-19.52-25.482-34.812-22.86-12.748 2.186-23.877 12.772-25.735 25.456-2.026 13.824 4.859 27.119 17.108 32.689 6.794 3.089 13.771 5.778 20.549 8.9 7.706 3.551 16.038 6.355 22.766 11.296 16.7 12.262 27.012 29.145 31.033 49.523 2.408 12.207 2.245 24.36-3.339 35.95-4.286 8.895-11.319 15.357-18.875 21.253-7.775 6.068-16.007 11.554-23.747 17.664-2.095 1.653-3.509 4.505-4.478 7.09-0.411 1.095 0.925 4.066 1.819 4.227 4.746 0.852 9.596 1.29 14.425 1.473 5.574 0.21 11.164 0.032 16.746-0.042 1.21-0.015 2.853 0.141 3.549-0.542 2.891-2.843 5.159-1.014 7.166 0.856 1.689 1.573 2.893 3.668 4.236 5.433-0.815 0.12-2.487 0.541-4.168 0.581-5.613 0.133-11.233 0.047-16.843 0.253-1 0.037-1.963 1.066-2.942 1.637 1.031 0.409 2.058 1.165 3.093 1.175 9.682 0.091 19.366 0.054 29.057 0.054 0.011 5.038-6.722 11.936-12.704 13.806-0.045-0.682-0.087-1.317-0.131-1.994-5.944-0.141-11.778-0.03-17.078 2.788-1.396 0.743-2.309 2.394-3.446 3.627-1.431 1.551-2.605 3.547-4.349 4.559-3.576 2.076-7.48 3.58-11.211 5.397-13.259 6.458-27.262 6.231-42.302 4.854 8.991-2.092 17.11-3.982 25.23-5.872-0.093-0.494-0.185-0.987-0.278-1.481-10.86-1.455-21.134 2.528-31.756 4.003 3.849-2.254 7.749-4.35 11.778-6.158 4.095-1.837 8.316-3.39 12.538-5.091-5.364-4.583-10.746-5.588-17.488-4.048-3.686 0.842-7.585 1.29-11.348 1.106-3.887-0.19-7.802-1.147-11.332-3.506 3.78-1.916 7.263-3.506 10.549-5.432 1.355-0.795 2.909-2.144 3.287-3.536 0.904-3.333 1.166-6.841 1.687-10.281-6.188-0.701-17.071-6.994-19.27-11.09 9.512-1.831 19.868 0.383 28.942-5.746-2.989-2.262-9.949-5.075-12.502-7.007 3.156-0.827 10.469-0.423 13.33-0.229 2.409 0.164 3.521 0.223 4.508-0.59l28.001-21.921c2.944-2.374 14.835-13.629 17.939-20.704 2.643-6.023 2.966-11.148 2.965-12.398-2e-3 -3.355-0.413-8.609-2.721-14.469-0.969-2.461-3.812-7.912-9.677-14.267-9.09-9.847-20.783-15.17-33.57-17.807-29.732-6.13-54.436-37.881-47.462-72.884 8.142-40.866 53.247-62.991 90.107-43.552 23.824 12.564 36.456 37.078 33.072 63.762-2.045 16.12-9.338 29.269-21.563 39.839" fill="#fff"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
BIN
Defensio/Images/video/introduction/introduction.mp4
Normal file
BIN
Defensio/image-1.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
Defensio/image-2.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
Defensio/image-3.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
Defensio/image-4.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
Defensio/image-5.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
Defensio/image-6.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
Defensio/image-7.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
Defensio/image.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
3
Defensio/puppeteer-config.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--no-sandbox"]
|
||||
}
|
||||
@@ -1,11 +1,9 @@
|
||||
# Video Text Skript
|
||||
|
||||
Anfang: Willkommen zu unserem Video über den AlumniHub. Wir sind Konstantin Hintermayer, Florian Edlmayer und Adam Gaiswinkler und wir haben im Rahmen unserer Diplomarbeit an der HTL SZU Ungargasse eine moderne Webanwendung für den Absolventenverein entwickelt.
|
||||
Anfang: Vernetzung, die wirklich funktioniert – willkommen beim AlumniHub. Wir haben im Rahmen unserer Diplomarbeit an unserer HTL eine moderne Webanwendung für den Absolventenverein entwickelt.
|
||||
Zu beginn unseres Projekts sind wir auf viele Probleme gestoßen. Im Sommer beschäftigten wir uns mit einer Übergangslösung um das kommende Treffen der Absolventen im Jahr 2025 zu ermöglichen. Ein weiteres Problem war unser Team Downsizing von 6 auf 3 Mitglieder. Dadurch mussten wir unsere ursprünglichen Pläne stark überdenken und uns auf das Wesentliche konzentrieren.
|
||||
Außerdem sind wir immer wieder auf Probleme mit unserer Serverinfrastruktur gestoßen.
|
||||
|
||||
Ein zentraler Teil unserer Arbeit ist die kontinuierliche Integration unserer Software. Wir haben uns für Git als Versionsverwaltungssystem entschieden und hosten eine Gitea Instanz. Bei veröffentlichen eines tags wird automatisch ein neues Debian Paket gebaut und in unsererem Debian Package Registry bereitgestellt.Durch diese automatisierung ist die veröffentlichung von neuen Softwareversionen stark vereinfacht worden.
|
||||
|
||||
Das Hauptziel des Projektes war es eine moderne Webanwendung für den Absolvenntenverein zu kreieren. Die es ermöglicht einfach Events und treffen zu organisieren mithilfe unseres EventRegistration Moduls. Weiter Funktionen sind die Hall of Fame, wo Absolventen ihre Erfolge präsentieren können, das Schwarze Brett für Neuigkeiten und Jobangebote und der Premiumbereich für exklusive Inhalte. Diese sind im Laufe der Entwicklung hinzugekommen.
|
||||
|
||||
Nun wollen wir Ihnen unsere Webanwendung genauer vorstellen.
|
||||
@@ -19,4 +17,7 @@ Hall of Fame Modul:
|
||||
Schwarzes Brett Modul:
|
||||
|
||||
|
||||
Premiumbereich Modul:
|
||||
Premiumbereich Modul:
|
||||
|
||||
|
||||
Ein zentraler Teil unserer Arbeit ist die kontinuierliche Integration unserer Software. Wir haben uns für Git als Versionsverwaltungssystem entschieden und hosten eine Gitea Instanz. Bei veröffentlichen eines tags wird automatisch ein neues Debian Paket gebaut und in unsererem Debian Package Registry bereitgestellt.Durch diese automatisierung ist die veröffentlichung von neuen Softwareversionen stark vereinfacht worden.
|
||||
@@ -151,6 +151,11 @@ local mermaid = {
|
||||
compile = function (self, code)
|
||||
local mime_type = self.mime_type or 'image/svg+xml'
|
||||
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_working_directory(tmpdir, function ()
|
||||
local infile = 'diagram.mmd'
|
||||
@@ -158,7 +163,7 @@ local mermaid = {
|
||||
write_file(infile, code)
|
||||
pipe(
|
||||
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
|
||||
@@ -167,6 +172,24 @@ local mermaid = {
|
||||
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
|
||||
--
|
||||
|
||||
|
||||
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
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"args": ["--no-sandbox"]
|
||||
}
|
||||