Skip to content

Commit 53b4b07

Browse files
committed
Start technical solution
1 parent 2f861f4 commit 53b4b07

File tree

7 files changed

+88
-3
lines changed

7 files changed

+88
-3
lines changed

project-report/project-report.pdf

173 KB
Binary file not shown.
53 KB
Loading
66 KB
Loading
99 KB
Loading

project-report/src/latex/design.tex

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ \subsection{Introduction}
1414
\item The program will support multiple platforms to run on, including Windows and Linux.
1515
\item The program will use python3 as its main programming language.
1616
\item I will take an object-orientated approach to the project.
17-
\item I will give an option to use either a Graphics Card or a CPU to train the Artificial Neural Networks.
17+
\item I will give an option to use either a Graphics Card or a CPU to train and test the Artificial Neural Networks.
1818
\end{itemize}
1919

2020
I will also be using SysML for designing the following diagrams.
@@ -130,4 +130,16 @@ \subsection{Hardware Design}
130130
To allow for faster training of an Artificial Neural Network, I will give the option to use a Graphics Card to train the Artificial Neural Network if available.
131131
I will also give the option to load pretrained weights to run on less computationaly powerfull hardware using just the CPU as standard.
132132

133+
\subsection{Workflow and source control}
134+
135+
I will use Git along with GitHub to manage my workflow and source control as I develop the project, by utilising the following features:
136+
137+
\begin{itemize}
138+
\item Commits and branches for adding features and fixing bugs seperately.
139+
\item Using GitHub to back up the project as a repository.
140+
\item I will setup automated testing on GitHub after each pushed commit.
141+
\item I will also provide the necessary instructions and information for the installation and usage of this project, aswell as creating releases of the project
142+
with new patches.
143+
\end{itemize}
144+
133145
\end{document}

project-report/src/latex/project-report.tex

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@
33
\usepackage{hyperref}
44
\usepackage[cache=false]{minted}
55
\usepackage{subfiles}
6+
\usepackage{verbatim}
67
\hypersetup{
78
colorlinks,
89
citecolor=black,
910
filecolor=black,
1011
linkcolor=black,
1112
urlcolor=black
1213
}
14+
\setminted[markdown]{
15+
frame=lines,
16+
fontsize=\footnotesize,
17+
linenos,
18+
breaklines
19+
}
1320
\setminted[python]{
1421
frame=lines,
1522
fontsize=\footnotesize,
@@ -18,6 +25,11 @@
1825
\setminted[sql]{
1926
fontsize=\footnotesize
2027
}
28+
\setminted[text]{
29+
frame=lines,
30+
fontsize=\footnotesize,
31+
linenos
32+
}
2133

2234
\title{Computer Science NEA Report
2335
\bigbreak

project-report/src/latex/technical-solution.tex

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,69 @@
66

77
\section{Technical Solution TODO}
88

9-
\subsection{Test}
9+
\subsection{Setup}
1010

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.
1273

1374
\end{document}

0 commit comments

Comments
 (0)