Compare commits

...

40 Commits

Author SHA1 Message Date
27ef0a0ba7 Center sequence Diagram 2026-04-21 21:11:38 +02:00
6e124dfb67 Neues Video 2026-04-21 20:56:31 +02:00
d900fa258d Fix: Framenumbering on sequenceDiagram 2026-04-21 20:40:37 +02:00
1f21067f75 Neues Bild 2026-04-21 20:32:00 +02:00
0306fabb91 Rest 2026-04-21 20:26:32 +02:00
a52d5ab983 Neues Modul in der Übersicht 2026-04-21 20:26:32 +02:00
25fc5690fe New: Space and arrows in Herausforderungen & Lösungen Slide 2026-04-21 20:26:32 +02:00
f88a170d86 New: other column definition for diffrent widths 2026-04-21 20:26:32 +02:00
71678fafa3 New Video 2026-04-21 20:26:31 +02:00
898d7eacce Remove arrows 2026-04-21 20:26:31 +02:00
deb8173bde Use Free fontawesome icons 2026-04-21 20:26:31 +02:00
2bfede6112 Neue Bilder für technologie 2026-04-21 20:07:50 +02:00
ae5ecf8564 Neues Image für technlogie 2026-04-21 18:00:36 +02:00
48b6193507 Eingesetze Technologien wurde neu gemacht 2026-04-21 16:52:07 +02:00
d2c877fe42 Neuste Änderung DSGVO Folie 2026-04-21 16:37:14 +02:00
e065b1f6ff Merge branch 'main' of https://git.kocoder.xyz/Diplomarbeit-Absolventenverein/pm 2026-04-21 16:21:29 +02:00
6a6786f6bc neue Version 2026-04-21 16:20:38 +02:00
803bdb234a bild hinzugefügt 2026-04-21 15:29:58 +02:00
e30c4086e2 Abstand bei Backup- & Restore Systeme hinzugefügt 2026-04-21 15:26:35 +02:00
9f827889f9 Unnötige Überschrift entfernen. 2026-04-21 15:26:35 +02:00
a7d0f34a14 Von Commit zu Paket: Kontrast in der Grafik erhöhen 2026-04-21 15:26:35 +02:00
e4dc1dc97c Merge remote-tracking branch 'origin/main' 2026-04-21 15:23:32 +02:00
522e60793a neuste version 2026-04-21 15:21:35 +02:00
4518e8142e Update 2026-04-21 11:09:22 +02:00
8bde5bc89b neue Version 2026-04-21 11:01:02 +02:00
d57913c339 neue Grafik 2026-04-21 10:42:30 +02:00
aa983da15d neue änderung 2026-04-21 09:26:09 +02:00
dfec681d34 BULK 2026-04-21 08:52:22 +02:00
1e5696cd50 Move all Modules to a single slide 2026-04-21 08:51:25 +02:00
bafe030e25 SOLID Grafik in der Softwarearchitektur Slide 2026-04-21 08:49:55 +02:00
62a6dd1fe3 Update: Infrastructure Slide 2026-04-21 08:46:15 +02:00
b975d4e270 neues desing 2026-04-21 00:45:42 +02:00
8ce0d4e186 Neueste Version 2026-04-20 12:04:12 +02:00
c6ebf25659 Merge branch 'main' of https://git.kocoder.xyz/Diplomarbeit-Absolventenverein/pm 2026-04-19 21:39:13 +02:00
2bb2161e2f Bilder 2026-04-19 21:39:04 +02:00
7d570e9945 neue verison 2026-04-19 21:38:51 +02:00
65983a2f38 New: Infrastructure Slide updates 2026-04-19 20:58:52 +02:00
a27136bbe3 New: Infrastructure SVGs 2026-04-19 20:57:17 +02:00
764b18e41a Remove Logo (since it has been moved to the right 2026-04-19 20:25:52 +02:00
b07fc29512 Remove logo from the closing screen 2026-04-19 20:25:23 +02:00
45 changed files with 632 additions and 124 deletions

View File

@@ -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}

View File

@@ -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}

View File

@@ -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
<!-- ![](./Images/konstantin/tech_stack_logos.png){ 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
- Dependency Injection (IServiceProvider)
- Repository-Pattern (EntityFramework)
## Technischer Vergleich
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
![](./Images/images/konstantin/ReportingSystem.png)
\vfill
:::
:::
## 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
::::
:::
![Gitea Board](./Images/images/konstantin/GiteaIssues-TaskBoard.png){ 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.

View File

@@ -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,12 +141,9 @@
- **Problem**: Datenverlust (Hardware, Software, Cyberangriffe).
- **Lösung**: Vollautomatisiertes Backup-Skript.
**Automatischer Ablauf (täglich 02:30 Uhr):**
1. Cronjob startet → Konfiguration wird geladen
2. Datenbank-Backup wird erstellt
3. Restliches Dateisystem wird komprimiert
4. Fehlerüberprüfung → bei Fehler: Log-Eintrag & Abbruch
5. Rotation: Nur die letzten 30 Backups bleiben erhalten, ältere werden automatisch gelöscht
\vspace{2em}
![](image.png)
---
@@ -65,7 +164,7 @@
- Abbau von Registrierungshürden.
- Keine sensiblen Passwörter im eigenen System.
![Ablauf der OAuth-Authentifizierung](Images/oauth-flow-new.png)
![](Images/oauth-flow-new.png){width=20em}
---
@@ -79,12 +178,7 @@
---
## Der Premium-Bereich (2)
**Architektur des Premium-Bereich-Moduls:**
**Technische Architektur:**
- **Frontend**: Blazor WebAssembly (Oqtane) → ruft API auf
- **Backend**: ASP.NET Core Controller → Service-Schicht mit Rechteverwaltung
- **Datenbank**: EF Core → PostgreSQL mit Audit-Trail (jede Premium-Vergabe nachvollziehbar)
![](./Images/images/florian/image-3.png)
**Datensparsame Mitgliedersuche & Kontaktfunktion:**
![Mitgliedersuche und Kontaktfunktion für Premium-Mitglieder](../Diplomarbeitsbuch/images/04-Florian/premium-mitglieder-suche.png)
@@ -96,6 +190,7 @@
- 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.

View File

@@ -7,7 +7,8 @@
- Oqtane-Theme
- Hall-of-Fame-Modul
- Anmeldetool
- **Ziel**: Moderne, responsive Website für den HTL-Absolventenverein
- **Ziel**:
- Moderne, responsive Website für den SZU Absolventenverein
---
@@ -50,10 +51,10 @@
::: columns
:::: column
- EigenNavigation (bootstrap Komponenten haben nicht gepasst ).
- EigenNavigation (Bootstrap-Komponenten haben nicht gepasst).
- Systemseiten per LINQ ausblenden.
- Responsive CSSMediaQueries + reines CSSBurgerMenu.
- CookieConsent (erforderlich für dsgvo konformität und gesamtheit der website ).
- CookieConsent (erforderlich für DSGVO-Konformität und Gesamtheit der Website).
::::
:::: column
@@ -77,7 +78,7 @@
:::: column
\begin{tikzpicture}
\node[inner sep=0pt, rounded corners=5pt, clip] {\includegraphics[width=0.55\columnwidth]{Images/HallOfFameBeispiel.png}};
\node[inner sep=0pt, rounded corners=5pt, clip] {\includegraphics[width=0.55\columnwidth]{Images/HallOfFamePdfNeuBesser.png}};
\end{tikzpicture}
::::
@@ -117,44 +118,94 @@
---
## Anmeldetool
- **UI**: Ja/NeinButtons (grün/rot)
- **LiveFeedback**: Sofortige Statusänderung via Blazor
- **Mobile**: Sauberes Touch-Handling
- **Architektur**: UI & Backend-API getrennt
---
## Herausforderungen & Lösungen
- **Plattformwechsel** Windows → macOS
- Oqtane stark an Windows gebunden
-**Visual Studio Code** als plattformübergreifende Lösung
- **Keine funktionsfähige Website** (Sommer 2025)
- Kurz vor einem Event, kein funktionierendes CMS
- → Schnelle **Node.js/HTML-Übergangslösung** sicherte Event-Anmeldung
---
## Learnings
\vspace{1cm}
\begin{tikzpicture}[remember picture, overlay]
\node at (current page.center) {
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{c c c}
\textbf{Technisch} & \textbf{Methodisch} & \textbf{Persönlich} \\
\hline
Git & Aufgabenverteilung & Eigeninitiative \\
CSS-Flexbox & Regelmäßige Meetings & Verantwortung \\
Blazor & & \\
\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}
---
## Fazit & Ausblick
- **Ergebnis**:
- Theme final & mobil-optimiert
- Hall of Fame funktionsfähig
- Anmeldetool einsatzbereit
## Herausforderungen & Lösungen
\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
\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}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

Before

Width:  |  Height:  |  Size: 352 KiB

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

BIN
Defensio/image-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
Defensio/image-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
Defensio/image-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
Defensio/image-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
Defensio/image-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
Defensio/image-6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
Defensio/image-7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
Defensio/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB