\section{Backend}

Für das Backend wird das \Gls{java}-Framework \Gls{spring} verwendet. Neben seiner Modularität,
bietet es viele Funktionen, die unter
anderem die Entwicklung von Backend-Anwendungen vereinfachen.
Darunter fällt zum Beispiel die Unterstützung von Dependency Injection, dessen 
Vorteile bereits beschrieben wurden.
Außerdem unterstützt \Gls{java} \Gls{spring} intern eine Verwaltung von \Glspl{db}, sodass
sich nicht mit dem \Gls{SQL}-Code an sich befasst werden muss. 
Auch bezüglich Authentifizierung und Sicherheit bietet \Gls{spring} eigene Funktionalitäten.

Zusätzlich dazu wird als Build-System für das \Gls{java}-\Gls{spring}-Backend Maven verwendet.
Maven hilft dabei alle Abhängigkeiten des Projekts zu verwalten und automatisiert 
den Build Prozess.
Durch die zusätzliche Unterstützung von Versionskontrollsystemen und der Kompatibilität
zu vielen Continuous Integration-Tools wird außerdem die Entwicklung in einem Team erleichtert
und optimiert. Denn dadurch können Build- und Deployment-Prozesse automatisiert werden.
Außerdem bietet Maven Bibliotheken zum Testen sowie zur Generierung von Dokumentationen an.

Vom Backend benötigte Abhängigkeiten:
\begin{itemize}
    \item \Gls{spring} Web
    \item \Gls{spring} Security
    \item \Gls{spring} Mail Sender
    \item \Gls{spring} Data JPA
    \item Lombok
    \item Rome (\Gls{rss} parsing/fetching)
\end{itemize}