diff --git a/PythonChess/Doc/DevelopmentPlan/Development_Plan.pdf b/PythonChess/Doc/DevelopmentPlan/Development_Plan.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a0e9f1a9f2e2558a29063ef426d3b9effd7b7c10 Binary files /dev/null and b/PythonChess/Doc/DevelopmentPlan/Development_Plan.pdf differ diff --git a/PythonChess/Doc/DevelopmentPlan/Development_Plan.tex b/PythonChess/Doc/DevelopmentPlan/Development_Plan.tex new file mode 100644 index 0000000000000000000000000000000000000000..1089675d57883b3fa5e004a266938f1e1103bb11 --- /dev/null +++ b/PythonChess/Doc/DevelopmentPlan/Development_Plan.tex @@ -0,0 +1,41 @@ +\documentclass{article} +\usepackage[utf8]{inputenc} +\usepackage{titlesec} +\usepackage{url} +\usepackage[colorlinks=true, urlcolor=blue]{hyperref} + +\titleformat*{\section}{\Large\bfseries} + +\title{Development Plan \\ +\large Checkmate Engineering - L02 Group 18} +\author{ +Mihail Serafimovski \\ serafimm +\and +Aidan Mariglia \\ mariglia +\and +Benjamin Dubois \\ duboisb +} + +\begin{document} + +\maketitle +The goal of this project is to add a GUI to an existing python chess implementation that will allow for players to visually move pieces on a chess board with their mouse rather than python commands. The purpose of this document is to provide a plan for how this goal will be achieved. The document includes information about how the team will work together and how the GUI will be added and functional. +\section{Meeting Plan} +Making use of Microsoft teams, meetings will be held every Monday at 8pm virtually. No strict roles will be assigned however the meeting chair will rotate week by week. The meeting agenda will be the responsibility of the chair and will be briefly discussed at the end of the previous meeting. Additional meetings can be called on short notice when appropriate. The member which calls the meeting will be responsible for serving as its chair and creating the meeting agenda. +\section{Communication Plan} +The primary method for all communications will be a dedicated Microsoft teams channel. Git related issues should always first be correctly marked in the repository before the team member in question is contacted. +\section{Roles} +Due to the small size of the team, no team leader is necessary and instead a vote of two to one or better will be required to approve decisions. When a scribe is necessary it shall be assigned to each member in turn. +\section{Git Workflow} +For our git workflow, we will use feature branches. This means that the \verb|main| branch will be the most recent working version of the project, and new additions will be made in separate branches and then merged into the main branch after review. No labels or milestones will be used. +\section{Proof of Concept Demonstration} +The most significant risks will be learning \verb|pygame|, and connecting the GUI to the source code's functionality. To show that these risks can be overcome, the proof of concept demonstration will consist of a rendered chessboard with some movable pieces. This will show that we can use \verb|pygame|, and that we can also use the source code to make moves in the game. +\section{Technology} +Python will be the main programming language, \verb|pytest| will be used for testing, \verb|pydoc| will be used for documentation. No common IDE will be used. The \verb|pygame| library will also be used for development. +\section{Coding Style} +Pep-8 style guidelines will be followed, with exceptions made where enforcing the guidelines is pedantic. A supported linter may be used to assist in following the guidelines. +\section{Project Schedule} +\href{https://gitlab.cas.mcmaster.ca/mariglia/python_chess_l02_grp18/-/tree/main/PythonChess/Doc/Gantt}{Gantt Chart} +\section{Project Review} + +\end{document}