From 94e3bd4b22b5b9ee5cafe983ce593bb34dd6e283 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 18 Mar 2025 10:21:27 +0000 Subject: [PATCH] [report]: Add headings --- report/report.pdf | Bin 10643 -> 27278 bytes report/report.tex | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/report/report.pdf b/report/report.pdf index 04b5ae300bfa85989ff026dbbf023aabc1b074c2..4c9808a9c49249e480c2858fab550480f6cf6b3b 100644 GIT binary patch literal 27278 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 delta 9971 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 AH2?qr diff --git a/report/report.tex b/report/report.tex index 4336e98..2497897 100644 --- a/report/report.tex +++ b/report/report.tex @@ -99,4 +99,55 @@ % yap about mental models with regards to how filters work % trying to make the application work the same way the user expects it to work +\section{Introduction} +\subsection{Project Overview} +\subsubsection{Problem Statement} +\subsubsection{Background} +\subsection{Document Structure} + +\section{Research} +\subsection{Introduction} +\subsection{Data Sources} +\subsection{Similar Services} +\subsection{Technologies} +\subsubsection{Frontend Technologies} +\subsubsection{Backend Technologies} +\subsubsection{Project Management Technologies} +\subsection{Conclusion} + +\section{Requirements} +\subsection{Functional Requirements} +\subsection{Non-Functional Requirements} +\subsection{Use Cases} +\subsection{Constraints} + +\section{Design} +\subsection{Backend Design} +\subsubsection{Database Design} +\subsubsection{API Design} +\subsection{Frontend Design} + +\section{Development} +\subsection{Introduction} +\subsection{Backend Development} +\subsection{Frontend Development} +\subsection{Development Considerations} + +\section{Code Quality} +\subsection{Introduction} +\subsection{Clean Coding Principles} +\subsection{Unit Testing} +\subsection{CI/CD} +\subsubsection{Continuous Integration} +\subsubsection{Continuous Deployment} + +\section{Conclusion} +\subsection{Evaluation} +\subsection{Reflection on Requirements} +\subsection{Reflection on Skill Development} +\subsection{Potential Future Work} + + + + \end{document}