Files
Exams/AppDev/texFiles/requirements.tex
2026-05-31 14:05:22 +02:00

97 lines
3.5 KiB
TeX

\section{Requirements}
Requirements are critical for measuring the success of the project. They are both the team's guidelines for the project and determine what users can expect from the product.
\vspace{2mm}
Requirements will be divided into two main parts, those being functional and non-functional requirements. Functional requirements define what the system should do, whereas non-functional requirements define how the system should perform \cite{geeksforgeeks_functional_nonfunctional_requirements}. Beyond that, functional/non-functional requirements will both be split into 4 subcategories. "Must have", "Should have", "Could have" and "Will not have" requirements.
\subsection{Functional Requirements}
\subsubsection{Must Have}
\begin{itemize}
\item[FR1:] Users must be able to create, edit, delete and view subjects
\item[FR2:] Users must be able to create, edit, delete and view assignments
\item[FR3:] Users must be able to create, edit, delete and view tasks
\item[FR4:] Users must be able to start and cancel timed study sessions
\item[FR5:] Users must be prompted to take breaks after timed study sessions
\item[FR6:] The app must connect a study session to a specific task
\item[FR7:] Subjects, assignments, tasks and study sessions must persist between app instances to avoid losing data
\item[FR8:] Tracking of studying progress
\end{itemize}
\subsubsection{Should Have}
\begin{itemize}
\item[FR9:] Ability to set assignments and tasks as completed/not completed
\item[FR10:] Ability to set subjects as active/inactive
\item[FR11:] Notifications for important events
\item[FR12:] Users should be able to cancel active study session
\end{itemize}
\subsubsection{Could Have}
\begin{itemize}
\item[FR13:] Authentication could be set up to allow for cross device persistence and greater safety
\item[FR14:] Users could be able to customize break and study session durations
\item[FR15:] Users could be able to pause study sessions
\end{itemize}
\subsubsection{Will Not Have}
\begin{itemize}
\item[FR-W1:] Study groups will not be included, as this was deemed too large in scope for the simple design philosophy of the project
\item[FR-W2:] Calendar integration will not be included
\item[FR-W4:] Advanced analytics will not be included
\end{itemize}
\subsection{Non-Functional Requirements}
\subsubsection{Must Have}
\begin{itemize}
\item[NFR1:] The project must have a functional UI where elements do not overlap and do not become unreachable
\item[NFR2:] The UI must be easy to understand / low friction
\item[NFR3:] Project must be open source on GitHub
\item[NFR4:] Simple navigation between screens
\item[NFR5:] Timer must be reliable at tracking time during study sessions and breaks
\end{itemize}
\subsubsection{Should Have}
\begin{itemize}
\item[NFR6:] Loading states between different pages being rendered
\item[NFR7:] Page not found / error pages if something were to go wrong during interaction with, for example storage/database
\item[NFR8:] A custom UI style
\item[NFR9:] App should be prepped and ready for android deployment, and should be published on the Google Play Store if time allows for it
\end{itemize}
\subsubsection{Could Have}
\begin{itemize}
\item[NFR10:] Display daily motivational quotes to encourage users to study
\end{itemize}
\subsubsection{Will Not Have}
\begin{itemize}
\item[NFR-W1:] Advanced animations
\item[NFR-W2:] Be published on App Store
\end{itemize}