summaryrefslogtreecommitdiff
path: root/11-entwurfsheft-kolloquium/slides
diff options
context:
space:
mode:
authorOrangerot <purple@orangerot.dev>2024-05-24 17:42:08 +0200
committerOrangerot <purple@orangerot.dev>2024-05-24 17:47:22 +0200
commit7fcdc1c788725f866de71fc9dfd8c4d1cb132b57 (patch)
tree89931c85ae3f149884ba02c69862558e93f01531 /11-entwurfsheft-kolloquium/slides
Initial commitHEADmain
Diffstat (limited to '11-entwurfsheft-kolloquium/slides')
-rw-r--r--11-entwurfsheft-kolloquium/slides/apiExtension.tex39
-rw-r--r--11-entwurfsheft-kolloquium/slides/architecture.tex7
-rw-r--r--11-entwurfsheft-kolloquium/slides/changes.tex22
-rw-r--r--11-entwurfsheft-kolloquium/slides/classdiagram.tex57
-rw-r--r--11-entwurfsheft-kolloquium/slides/frontend.tex21
-rw-r--r--11-entwurfsheft-kolloquium/slides/pattern.tex26
-rw-r--r--11-entwurfsheft-kolloquium/slides/sequence.tex7
7 files changed, 179 insertions, 0 deletions
diff --git a/11-entwurfsheft-kolloquium/slides/apiExtension.tex b/11-entwurfsheft-kolloquium/slides/apiExtension.tex
new file mode 100644
index 0000000..df1c027
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/apiExtension.tex
@@ -0,0 +1,39 @@
+\begin{frame}{API Erweiterung}
+
+ \begin{columns}[t]
+ \begin{column}{.3\textwidth}
+ \centering{\fontsize{30pt}{36pt}\selectfont\faLock}
+ \vspace{.2cm}
+ \begin{orangeblock}{Authentication}
+ \begin{itemize}
+ \item Registrierung
+ \item Passwort ändern
+ \item Passwort vergessen
+ \item Passwort zurücksetzen
+ \item Account löschen
+ \end{itemize}
+ \end{orangeblock}
+ \end{column}
+ \begin{column}{.3\textwidth}
+ \centering{\fontsize{30pt}{36pt}\selectfont\faDownload}
+ \vspace{.2cm}
+ \begin{greenblock}{Subscriptions}
+ \begin{itemize}
+ \item Abrufen der Informationen aller Abonnements
+ \end{itemize}
+ \end{greenblock}
+ \end{column}
+ \begin{column}{.3\textwidth}
+ \centering{\fontsize{30pt}{36pt}\selectfont\faSpinner}
+ \vspace{.2cm}
+ \begin{blueblock}{Episode Actions}
+ \begin{itemize}
+ \item Episode Actions hochladen
+ \item Episode Actions abrufen
+ \end{itemize}
+ \end{blueblock}
+ \end{column}
+ \end{columns}
+
+\end{frame}
+
diff --git a/11-entwurfsheft-kolloquium/slides/architecture.tex b/11-entwurfsheft-kolloquium/slides/architecture.tex
new file mode 100644
index 0000000..edd9f1b
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/architecture.tex
@@ -0,0 +1,7 @@
+\begin{frame}{Architektur}
+
+ \begin{figure}[h]
+ \includegraphics[width=0.73\textwidth]{assets/diagrams/backendComponentDiagram}
+ \end{figure}
+
+\end{frame} \ No newline at end of file
diff --git a/11-entwurfsheft-kolloquium/slides/changes.tex b/11-entwurfsheft-kolloquium/slides/changes.tex
new file mode 100644
index 0000000..b3ba6de
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/changes.tex
@@ -0,0 +1,22 @@
+\begin{frame}[t]{Änderungen Pflichtenheft}
+
+ \begin{block}{Neue Kriterien}
+ \begin{itemize}
+ \item \textlangle RS11\textrangle \, Cooldown Fetch-Vorgang
+ \item \textlangle RC13\textrangle \, Sprache von Browserinformationen
+ \end{itemize}
+ \end{block}
+
+ \begin{blueblock}{Abgeänderte Kriterien}
+ \begin{itemize}
+ \item \textlangle RS10\textrangle \, Sessions mit JSON Web Token
+ \end{itemize}
+ \end{blueblock}
+
+ \begin{maroonblock}{Entfernte Kriterien}
+ \begin{itemize}
+ \item \textlangle RC5\textrangle \, Frontend kompatibel mit beliebigen Gpodder APIs
+ \end{itemize}
+ \end{maroonblock}
+
+\end{frame}
diff --git a/11-entwurfsheft-kolloquium/slides/classdiagram.tex b/11-entwurfsheft-kolloquium/slides/classdiagram.tex
new file mode 100644
index 0000000..aeecec0
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/classdiagram.tex
@@ -0,0 +1,57 @@
+\begin{frame}[t]{Überblick: Klassendiagramm}
+ \centering
+ \includegraphics[width=\textwidth]{assets/diagrams/classdiagram}
+ \vspace{.3cm}
+ \begin{greenblock}{Abhängigkeiten}
+ \vspace{-.2cm}
+ \begin{columns}
+ \begin{column}{.4\textwidth}
+ \begin{itemize}
+ \item Spring Web
+ \item Spring Security
+ \item Spring Mail Sender
+ \end{itemize}
+ \end{column}
+ \begin{column}{.4\textwidth}
+ \begin{itemize}
+ \item Spring Data JPA
+ \item Lombok
+ \item Rome (RSS parsing/fetching)
+ \end{itemize}
+ \end{column}
+ \end{columns}
+
+ \end{greenblock}
+\end{frame}
+
+% sub
+% episode
+% auth
+% model
+% util
+
+\begin{frame}[t]{Subscriptions-API}
+ \centering
+ \includegraphics[width=\textwidth]{assets/diagrams/classdiagram-subscriptions}
+\end{frame}
+
+\begin{frame}[t]{EpisodeActions-API}
+ \centering
+ \includegraphics[width=\textwidth]{assets/diagrams/classdiagram-episode-actions}
+\end{frame}
+
+\begin{frame}[t]{Authentication-API}
+ \centering
+ \includegraphics[width=.73\textwidth]{assets/diagrams/classdiagram-authentication}
+\end{frame}
+
+\begin{frame}[t]{Model-Paket}
+ \centering
+ \includegraphics[width=\textwidth]{assets/diagrams/classdiagram-model}
+\end{frame}
+
+\begin{frame}[t]{Util-Paket}
+ \centering
+ \includegraphics[width=\textwidth]{assets/diagrams/classdiagram-util}
+\end{frame}
+
diff --git a/11-entwurfsheft-kolloquium/slides/frontend.tex b/11-entwurfsheft-kolloquium/slides/frontend.tex
new file mode 100644
index 0000000..c49d94f
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/frontend.tex
@@ -0,0 +1,21 @@
+\begin{frame}{Weboberfläche}
+ \begin{minipage}{.77\textwidth}
+ \centering
+ \includegraphics[width=\textwidth]{assets/diagrams/componentdiagram}
+ \end{minipage}
+ \hspace{.3cm}
+ \begin{minipage}{.18\textwidth}
+ \begin{greenblock}{Abhängigkeiten}
+ \begin{itemize}
+ \item vite
+ \item vue
+ \item vue-router
+ \item Pinia
+ \item bootstrap
+ \item fontawesome
+ \item vue-i18n
+ \end{itemize}
+ \end{greenblock}
+ \end{minipage}
+\end{frame}
+
diff --git a/11-entwurfsheft-kolloquium/slides/pattern.tex b/11-entwurfsheft-kolloquium/slides/pattern.tex
new file mode 100644
index 0000000..1f6366e
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/pattern.tex
@@ -0,0 +1,26 @@
+\begin{frame}{Entwurfsmuster}
+ \begin{columns}[t]
+ \column{.5\textwidth}
+ \centering{\fontsize{30pt}{36pt}\selectfont\faSyringe}
+ \begin{greenblock}{Dependency Injection}
+ \begin{itemize}
+ \item Bestimmt Abhängigkeiten in Klassen
+ \item Speichert Instanzen dieser Abhängigkeiten an zentralem Ort
+ % Wichtig für Interface Abhängigkeiten:
+ \item Instanz in Konfiguration festlegbar
+ \item Setzt Instanzen während der Laufzeit an benötigter Stelle ein
+ \end{itemize}
+ \end{greenblock}
+ \column{.5\textwidth}
+ \centering{\fontsize{30pt}{36pt}\selectfont\faDatabase}
+ \begin{blueblock}{Data Access Object (DAO)}
+ \color{kit-blue100}
+ \begin{itemize}
+ \item DAO-Interface als Schnittstelle zwischen Geschäftslogik und Datenzugriffslogik
+ \item DAO-Implementierungen als Varianten der Datenzugriffslogik (MariaDB, MySQL, etc.)
+ \item[$\Rightarrow$] Austauschbare Implementierungen
+ \end{itemize}
+ \end{blueblock}
+ \end{columns}
+\end{frame}
+
diff --git a/11-entwurfsheft-kolloquium/slides/sequence.tex b/11-entwurfsheft-kolloquium/slides/sequence.tex
new file mode 100644
index 0000000..393e502
--- /dev/null
+++ b/11-entwurfsheft-kolloquium/slides/sequence.tex
@@ -0,0 +1,7 @@
+\begin{frame}{Abläufe: Abrufen aller Abonnements}
+
+ \begin{figure}[h]
+ \includegraphics[width=0.83\textwidth]{assets/diagrams/sequencediagram-getSubscriptions}
+ \end{figure}
+
+\end{frame} \ No newline at end of file