diff options
Diffstat (limited to '00-pflichtenheft/sections/produktdaten.tex')
-rw-r--r-- | 00-pflichtenheft/sections/produktdaten.tex | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/00-pflichtenheft/sections/produktdaten.tex b/00-pflichtenheft/sections/produktdaten.tex new file mode 100644 index 0000000..c74e3fb --- /dev/null +++ b/00-pflichtenheft/sections/produktdaten.tex @@ -0,0 +1,83 @@ +\section{Produktdaten} + +Das Projekt erhebt an unterschiedlichen Stellen Daten des Benutzers oder anderen +Plattformen. Diese Daten können temporär gespeichert werden. Dabei bleiben die +Daten nur für eine kurze Zeit gespeichert, zum Beispiel so lange wie der Nutzer +eingeloggt ist. Andere Daten können auch persistent gespeichert werden. Dabei +bleiben die Daten solange gespeichert, bis sie manuell oder durch +\Gls{garbage-collection} gelöscht werden. + +\subsection{Weboberfläche} + +Die Weboberfläche bezieht direkt Daten vom Benutzer. Die Weboberfläche erhält +E-Mail-Adresse und Passwort vom Benutzer, speichert diese aber nur solange, bis +diese an das Backend zur Validierung geschickt werden. Daraufhin erhält die +Weboberfläche einen \Gls{session-token} welcher entweder persistent oder temporär als +\Gls{cookie} gespeichert bleibt, je nachdem, ob der Nutzer angemeldet bleiben möchte. + +Zusätzlich erhält die Weboberfläche die abonnierten \Glspl{podcast} und gehörten +\Glspl{episode} inklusive Metadaten vom Backend. Diese Daten werden nur temporär, +solange die Webseite offen ist, gespeichert. + +\subsubsection*{Persistent} + +\begin{itemize} + \item \Gls{session-token} (falls der Nutzer angemeldet bleiben möchte) +\end{itemize} + +\subsubsection*{Temporär} + +\begin{itemize} + \item Abonnierte \Glspl{podcast} + \item Gehörte \Glspl{episode} + \item \Gls{session-token} +\end{itemize} + +\subsection{Backend} + +Das Backend interagiert nicht direkt mit dem Benutzer, sondern bekommt Daten von +der Weboberfläche und \Glspl{podcatcher}. Wenn sich ein Nutzer über die Weboberfläche +oder im \Gls{podcatcher} anmeldet oder registriert speichert der Server temporär die E-Mail-Adresse und +das Passwort des Nutzers im Klartext, bevor es die Daten gegen die gehashten und +gesalzenen persistenten Daten der \Gls{db} abgleicht beziehungsweise speichert. + +Außerdem speichert das Backend abonnierte \Glspl{podcast} und gehörte +\Glspl{episode}, welche +es vom \Gls{podcatcher} bekommt, im persistenten Speicher. Diese Daten bleiben +gespeichert bis sie durch neue Daten obsolet werden (\Gls{garbage-collection}), +vom Nutzer manuell gelöscht werden oder der Account gelöscht wird. + +Wenn die Weboberfläche \Glspl{episode} über \Glspl{podcast} abfragt, welche noch nicht vom +Nutzer gehört wurden, holt der Server Metadaten über den \Glspl{podcast} und speichert +Informationen und Bilder des \Glspl{podcast} temporär, solange der Nutzer die +Weboberfläche geöffnet hat. + +\subsubsection*{Persistent} +\begin{itemize} +% Email (gehasht und gesalzen) / Betreuer fragen weil evtl Mails gesendet werden +% müssen, falls Datenschutzbedinungen geändert werden +\item E-Mail-Adresse gehasht und gesalzen +\item Passwort gehasht und gesalzen +\item Abonnierte \Glspl{podcast} +\item Gehörte \Glspl{episode} (Hörfortschritte) +\end{itemize} + +\subsubsection*{Temporär} +\begin{itemize} + \item Metadaten von Feeds (\Glspl{episode}, Bilder) +\end{itemize} + +\subsection{Podcatcher} + +Der \Gls{podcatcher} speichert die E-Mail-Adresse, das Passwort und die URL der +Gpodder-Instanz im persistenten Speicher. Zusätzlich speichert der +\Gls{podcatcher} +abonnierte \Glspl{podcast} und gehörte \Glspl{episode} im persistenten Speicher. + +\subsubsection*{Persistent} +\begin{itemize} +\item E-Mail-Adresse, Passwort und URL der Gpodder-Instanz +\item Abonnierte \Glspl{podcast} +\item Gehörte \Glspl{episode} +\end{itemize} + |