\title{SE 3XA3: Development Plan\\Title of Project}
\title{SE 3XA3: Development Plan\\Snake 2.o}
\author{Team \# 30, VUA30
\\ Vaibhav Chadha , chadhav
...
...
@@ -31,6 +31,7 @@ Sept 27, 2018 & Vaibhav, Usman, Andy & Worked on part 4 to 8\\
Sept 27, 2018 & Vaibhav & Added the information from the meeting documents to the LaTeX file\\
Sept 28, 2018 & Andy & Proof of concept, Git workflow, Final editing and formatting\\
Sept 28, 2018 & Usman & Updated proof of concept\\
Oct 12, 2018 & Andy & Made changes according to feedback on development plan and added section on POC demo\\
\bottomrule
\end{tabularx}
\end{table}
...
...
@@ -66,11 +67,9 @@ Meetings will be held \textbf{twice a week} at the following times:
\section{Team Communication Plan}
Main source of communication is \textbf{Facebook Messenger}. Phone and texting will be used as a backup in case of urgent matters.
Main source of communication is \textbf{Facebook Messenger}, it will be used for general inquiries, updates, reminders of team meetings, any links to useful resources and so on. Phone and texting will be used as a backup in case of urgent matters, for example not being able to get in contact with a team member through messenger.
Andy Hameed: 647-927-6093
Usman Irfan: 416-878-7844
Vaibhav Chadha: 647-454-5182
Aside from these, the team will be using Workflowy to assign small tasks that are promptly due or ones that may not necessarily fit on the gantt chart because they are minor - this tool will be used to delegate a small to-do list for each team member .
\section{Team Member Roles}
...
...
@@ -83,7 +82,7 @@ Vaibhav Chadha:
Usman Irfan:
\begin{itemize}
\item Scribe
\itemtechnology research
\itemTechnology Research
\item operation manager -ensures project development is running smoothly and software is being developed according to milestones \\
\end{itemize}
Andy Hameed:
...
...
@@ -103,8 +102,18 @@ All:
We will be using the Git Feature Branch Workflow to manage the software development. Using branches, each team member is capable of
working on different modules or sections of the software at the same time in localized branches, before pushing their changes to the master branch.
The following procedures will be followed:
\begin{itemize}
\item Vaibhav will be tagging any major milestones for final submission. This makes the submission process consistent. Otherwise, Andy or Usman will agree on one person to tag and submit for final submission.
\item Any major changes can be placed in a branch to avoid merging conflicts and overwriting existing work. They can be merged later on upon team agreement.
\end{itemize}
\section{Proof of Concept Demonstration Plan}
The original project is built using javascript, HTML and CSS in contrast to our development plan using python and the kivy GUI library. Since we are using an OOP language, we will be able to create classes different component of the snake game such as the snake unit block, snake body, and snake bate. The hardest part of the implementation will be the movement of the snake according to the user's keyboard inputs, and second to that would be the process of expanding the snake once an a food item is captured. Besides that, the interface may be difficult to implement in python but could be simple with the use of a python framework such as PyQT5. Once our game application has been developed the next part would be test the project and for that we will be using pytest, since our backend language is python this will help us test all possible functions and aspects. The functions that will be difficult to test would be to see if the snake eats the food, does the food appear at random locations after eaten by the snake and if the snake tries to cross the maze does it die. Last but not least, portability would not be an issue for this application as it is an online application it can easily be accessible by any computing device.
The original project is built using Javascript, HTML and CSS in contrast to our development plan using python and the Pygame library. Since we are using an OOP language, we will be able to create classes for different components of the snake game such as the snake unit block, snake body, and snake bate. The hardest part of the implementation will be the movement of the snake according to the user's keyboard inputs, and second to that would be the process of expanding the snake once a food item is captured. Besides that, the interface may be difficult to implement in python but could be simple with the use of a python framework such as PyQT5.\\
Once our game application has been developed the next part would be to test the project and for that we will be using Pytest, since our backend language is python this will help us test all possible functions and aspects. The functions that will be difficult to test would be to see if the snake eats the food, does the food appear at random locations after eaten by the snake and if the snake tries to leave the borders, will the game end. Portability will have to be taken into consideration since the application is being built for windows. However, it can be compiled and run on any system as long as the necessary files and libraries are download.
\subsection{POC Demo}
The team will be demonstrating the movement of a snake around the screen using unit blocks for the body of the snake. Lengthening the snake body, scoring and eating the bate will not be demonstrated in the demo. This POC should demonstrate that with the movement of the snake, which is the main component of the game, the team will be able to develop classes to represent other components of the game such as the score, food bate, and lengthening of the snake body.
\section{Technology}
...
...
@@ -116,12 +125,12 @@ Documentation: Doxygen\\
\section{Coding Style}
We will be using the \href{https://github.com/google/styleguide/blob/gh-pages/pyguide.md}{Google Python Style Guide}
for our coding style
for our coding style. It encompasses all the necessary naming conventions and standards required for the project development.
\section{Project Schedule}
Please see teh following pages for the project schedule in the form of a gantt chart
Please see the following pages for the project schedule in the form of a gantt chart.