\section{Introduction} \label{sec:introduction}
	The purpose of this dissertation is to design and implement an automated image classification service that will empower users to connect their existing services that required image classification with the one being implemented in this project.
	This report will detail what requirements such service might have.
	How those requirements can be turned into a design for such a service, and how that design can be implemented into software with limited time and resources.

	This chapter will service as an introduction to the project, and will discuss the background, motivations, aims, goals, and success criteria for the project.
	This chapter will end with an overview of the project structure.

	\subsection{Project Background}
		There are many automatable tasks that are currently being done manually.
		If those tasks can be done automatically, a lot of productivity could be gained by having the computers perform those tasks, allowing humans to perform tasks that only humans can do.
		Moreover, recently, machine learning models have become as good, or even better than humans in tasks such image classification. This project will focus on image classification, as it is an area where automation is still required, and there are few other images automated systems that are easy to use. It is also an area that has not been saturated with new products such as the natural language processing space has.
		

	\subsection{Project Motivations}

		This project allows for the improvement of my learned skills, while being an interesting, complex piece of software to develop.
		The topics, skills, and knowledge required to build this project, cover all my years in the university, from the simple applications developed in the first year; the soft skills learned during placement; and the complexity of distributed systems and deep learning of the third year.
		I also wanted to use the opportunity that this project provides to gain experience in emerging technologies such as Go, and improve all my previous abilities and skills.

	\subsection{Project Aim}
		The project aims to create an easy-to-use software platform, where users can create image classification models without having prior knowledge about machine learning.
		The user should only need to upload the images and confirm, and the system should be able to perform all the steps necessary to create and manage the machine learning model.

	\subsection{Project Objectives}
		This project will have two different objectives.
		Primary objectives are objectives that are required for the project to be considered a success.
		Secondary objectives are objectives that are not required for the project to be considered a success, but they would provide a better experience for the user of the service.
		
	    This project's primary objectives are to design and implement:
	    \begin{itemize}
			\item a system to upload images that will be assigned to a model.
	        \item a system to automatically create and train models.
	        \item a platform where users can manage their models.
	        % \item a system to automatically expand and reduce models without fully retraining the models.
	        \item a system to automatically expand models without fully retraining the models.
	        \item an Application Programming Interface (API) that users can interact programmatically with the service.
	    \end{itemize}
	
	    This project's secondary objectives are to:
	    \begin{itemize}
	        % \item Create a system to automatically to merge modules to increase efficiency.
	        \item Create a system to distribute the load of training the model among multiple servers.
	    \end{itemize}

	\subsection{Success Criteria}
		As it was mentioned before, the project can be considered a success when the primary objectives have been completed.
		Therefore, the success criteria of this project can be defined as:

		\begin{itemize}
			\item A user can upload images, train a model on those images, and evaluate images using a user interface.
			\item A user can perform the same tasks, via the API service.
		\end{itemize}

	\subsection{Project Structure}
		The report on the project shows the development and designs stages of the project. With each chapter addressing a part of the design and development process.

		\renewcommand*{\arraystretch}{2}
		\begin{longtable}{p{7cm} p{8cm}} 
			\hyperref[sec:introduction]{Introduction} & The introduction chapter will do a brief introduction of the project and its objectives. \\
			\hyperref[sec:lit-tech-review]{Literature and Technical Review} & The Literature and Technical Review chapter will introduce some current existing projects that are similar to this one, and introduce some technologies that can be used to implement this project. \\
			\hyperref[sec:sanr]{Service Analysis and Requirements} & This chapter will analyse the project requirements. The chapter will define design requirements that the service will need to implement to be able to achieve the goals that were set up. \\
			\hyperref[sec:sd]{Service Design} & This chapter will discuss how a service could be designed that it matches the requirements of the service. \\
			\hyperref[sec:sd]{Service Implementation} & Information on how the design of the system was turned into software is in this chapter. \\
			\hyperref[sec:lsec]{Legal, Societal, Ethical, Professional Considerations} & This chapter will cover potential legal, societal, ethical and professional, issues that might arise from the service and how they are mitigated. \\
			\hyperref[sec:se]{Service Evaluation} & In this chapter, the model will be tested and the results of the tests will be analysed. \\
			\hyperref[sec:crpo]{Critical Review of Project Outcomes} & In this chapter, will compare the project goals with what was achieved. Then, according to the results, the project will either be deemed successful or not. 

		\end{longtable}
\pagebreak
