# Konstantin Hintermayer ## Rolle im Projekt ::: columns :::: column **Aufgabenbereiche**: - Product Owner - Kundenschnittstelle - Infrastruktur & CI/CD **Softwareentwicklung:** - Event Registration - Black Board - Report System - Mass Mailer :::: :::: column \begin{tikzpicture} \clip (0,0) circle (3em); \node at (0,0) {\includegraphics[width=6em]{./Images/images/konstantin/profile.jpg}}; \draw[accent, line width=3pt] (0,0) circle (3em); \end{tikzpicture} :::: ::: ## Infrastruktur ::: columns :::: column **Entwicklung:** - **Gitea:** Versionskontrollsystem - **Wireguard:** VPN - **Docker:** Containerisierung - **GitHub:** Transfer - **Gitea Actions:** CI/CD :::: :::: column **Produktion:** - **Debian:** Betriebssystem - **NginX:** Reverse Proxy - **PostgreSQL:** Datenbank - **Oqtane:** CMS :::: ::: \vfill \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} \vfill --- **Produktions-Infrastruktur:** ```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 ``` ## Von 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=gray] (n1) at (0,0) {\color{gray}\small\faCodeBranch}; \node[stepnode, draw=green!60!black, right=of n1] (n2) {\color{green!60!black}\small\faCheckCircle}; \node[stepnode, draw=blue!60!black, right=of n2] (n3) {\color{blue!60!black}\small\faCogs}; \node[stepnode, draw=orange, right=of n3] (n4) {\color{orange}\small\faBoxOpen}; \node[stepnode, draw=orange!70!black, right=of n4] (n5) {\color{orange!70!black}\small\faDatabase}; % Labels Above \node[labelnode, below=0.2cm of n1, color=gray] {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=orange] {.deb Paket}; \node[labelnode, below=0.2cm of n5, color=orange!70!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:** \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=gray!60!black] (n1) at (0,0) {\LARGE\color{gray!60!black}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 - Dependency Injection (IServiceProvider) - Repository-Pattern (EntityFramework) ::: columns :::: column left :::: :::: column right :::: ::: ## Fazit