|
6 | 6 |
|
7 | 7 | \section{Technical Solution TODO}
|
8 | 8 |
|
9 |
| -\subsection{Test} |
| 9 | +\subsection{Setup} |
10 | 10 |
|
11 |
| -\inputminted[firstline=0,lastline=5]{python}{./school_project/__main__.py} |
| 11 | +\subsubsection{File Structure} |
| 12 | + |
| 13 | +I used the following file structure to organise the code for the project, where school\_project is the package and is constructed of two main modules: |
| 14 | + |
| 15 | +\begin{itemize} |
| 16 | + \item The models module, which is a self-contained module for creating trained Artificial Neural Network models. |
| 17 | + \item The frames module, which consists of tkinter frames for the User Interface. |
| 18 | +\end{itemize} |
| 19 | + |
| 20 | +Each module within the school\_project package contains a \_\_init\_\_.py file, which allows the package to be installed to a virtual environment so that the modules of the package |
| 21 | +can be imported from the installed package. I have omitted the source code for this report, which included a Makefile for its compilation. |
| 22 | + |
| 23 | +\pagebreak |
| 24 | + |
| 25 | +\begin{footnotesize} |
| 26 | +\verbatiminput{|"git ls-tree -r --name-only HEAD | grep -v -E 'project-report/|Makefile' | tree --fromfile --charset=ascii"} % TODO: Could include project-report and Makefile |
| 27 | +\end{footnotesize} |
| 28 | + |
| 29 | +\subsubsection{Dependencies} |
| 30 | + |
| 31 | +The python dependencies for the project can be installed simply by running the following setup.py file (as described in the README.md in the next section). Instructions on |
| 32 | +installing external dependencies, such as the CUDA Toolkit for using a GPU, are explained in the README.md in the next section also. |
| 33 | + |
| 34 | +\begin{itemize} |
| 35 | + \item setup.py code: |
| 36 | + \inputminted{python}{./setup.py} |
| 37 | +\end{itemize} |
| 38 | + |
| 39 | +\subsubsection{Git and Github files} |
| 40 | + |
| 41 | +To optimise the use of Git and GitHub, I have used the following files: |
| 42 | + |
| 43 | +\begin{itemize} |
| 44 | + \item A .gitignore file for specifying which files and directories should be ignored by Git: |
| 45 | + \inputminted{text}{./.gitignore} |
| 46 | + \item A README.md markdown file to give installation and usage instructions for the repository on GitHub: |
| 47 | + \begin{itemize} |
| 48 | + \item Markdown code: |
| 49 | + \inputminted{markdown}{./README.md} |
| 50 | + \item Which will generate the following: |
| 51 | + \pagebreak |
| 52 | + \begin{figure}[h!] |
| 53 | + \centering |
| 54 | + \includegraphics[width=1\textwidth]{./project-report/src/images/readme-top.png} |
| 55 | + \end{figure} |
| 56 | + \pagebreak |
| 57 | + \begin{figure}[h!] |
| 58 | + \centering |
| 59 | + \includegraphics[width=1\textwidth]{./project-report/src/images/readme-middle.png} |
| 60 | + \end{figure} |
| 61 | + \pagebreak |
| 62 | + \begin{figure}[h!] |
| 63 | + \centering |
| 64 | + \includegraphics[width=1\textwidth]{./project-report/src/images/readme-bottom.png} |
| 65 | + \end{figure} |
| 66 | + \end{itemize} |
| 67 | + \item A LICENSE file that describes how others can use my code. |
| 68 | +\end{itemize} |
| 69 | + |
| 70 | +\subsubsection{Organisation} |
| 71 | + |
| 72 | +I also utilise a TODO.md file for keeping track of what features and/or bugs need to be worked on. |
12 | 73 |
|
13 | 74 | \end{document}
|
0 commit comments