97 lines
3.5 KiB
TeX
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} |