\section{Future Features}
Possible improvements for the futureinclude software, security and scalability improvements:

\subsection{Software}
\begin{itemize}
    \item \textbf{User Login:} The system as it is at the moment must be self-hosted, because there is no way to detect, differentiate and securely login users. As mentioned above, the .NET Identity framework could be utilised for that.
    \item \textbf{Newer AI models:} With the current hype for AI, the underlying models are evolving rapidly and we could utilise the better consistency to give the user an even better experience and more possibilites. GPT-4 for example can accept up to 24000 words in english, which creates much more room for personalized requests by users.
    \item \textbf{Better filters:} At the moment the user has to define his preferences via text, but in the future many of those choices could be relocated into clickable UI-elements with different predefined options. For example in the meal planner there could already be predefined food items a user does not want to have included, based on past inputs.
    \item \textbf{Improved UI:} This project was more focused on the networking and distributed system part, than the application itself. That had impact on the UI and UX, which could be improved in future updates.
\end{itemize}

\subsection{Security}
\begin{itemize}
    \item \textbf{Certificates:} At the moment only self-signed certificates are used, which is not feasible for a real world application. For that the Traefik should utilise real certificates with automatic integration via ACME server to ensure security for the user. 
    \item \textbf{Traefik Dashboard:} Use authentication to access the Traefik dashboard.
    \item \textbf{Remove SSL Termination:} It would be desirable to remove SSL termination at the load balancer and maintaining encryption all the way to the Blazor Server. By ensuring end-to-end encryption, it lowers the danger of data leakage within the internal network. This is especially important as the application deals with private user information.
\end{itemize}

\subsection{Scalability}
\begin{itemize}
    \item \textbf{Database:} Although a single database may manage numerous service instances, it becomes increasingly important to guarantee speed and reliability as the quantity of services grow. To boost performance, availability, and fault tolerance, it will be important to implement a distributed database system. A distributed database can also offer redundancy to prevent total system failure.
\end{itemize}