Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 5.92 KB

chess.md

File metadata and controls

55 lines (37 loc) · 5.92 KB

Chess

chess board

We use the game of chess to help you develop and demonstrate mastery during this course. Your development work is divided into different phases. Each phase demonstrates a different architectural concept or technology.

Phase Getting Started Requirements Starter Code Video Description
0. Chess moves doc doc dir Moves Initial chess project.
1. Chess game doc doc dir Creating the game.
2. Server design None doc None Designing the chess server.
3. Web API doc doc dir Creating an HTTP chess server.
4. Database doc doc dir Persistently storing players, games, and authentication.
5. Pregame doc doc dir Creating an command line interface (CLI) for the chess client.
6. Gameplay doc doc dir Implementing gameplay with multiple players.

Starter Code

⚠ Each phase of the project comes with starter code located in the course instruction repository. At the beginning of each phase, you will copy the phases's starter code from the course instruction repository and put it in your chess repository. In order to make it easy to copy the starter files to your chess repository, you should clone the course instruction repository to your development environment. Otherwise you will be individually downloading dozens of files directly from GitHub.

git clone https://github.com/softwareconstruction240/softwareconstruction.git softwareconstruction240

GitHub Commits

Git is an essential software development tool. It allows you to quickly recover from mistakes, share your code with others, backup your code, and serve as a portfolio of your skills.

⚠ You are required to make multiple commits to your public Chess GitHub repository for each phase. Each commit should represent a minor milestone within a phase. For example, after passing each test you should commit your code. Usually, you should have at least ten commits for each phase.

Failure to properly document your efforts with your GitHub history may result in your assignment deliverables being rejected. So make sure you commit your changes consistently and often.

Deliverables

The following summarizes the deliverables you must provide for each of the different chess phases. Refer to the phase instructions for a full description.

Phase Deliverables
0. Chess moves 1. Complete pass off tests for the chess board and moves code.
1. Chess game 1. Complete pass off tests for the chess game code.
2. Optionally complete castling and en passant tests for extra credit.
2. Server design 1. Create sequence diagrams endpoints, services, and data access components.
3. Web API 1. Complete pass off tests for the HTTP server
2. Create and complete unit tests for chess service.
4. Database 1. Complete serialization pass off test.
2. Create and complete unit tests for the chess database.
5. Pregame 1. Create and complete client unit tests.
6. Gameplay 1. Complete pass off tests for WebSocket server.
2. Demonstrate that you can play a game of chess using your server and multiple clients.

The deliverables in blue represent tests provided by the course start up code that you must pass. The deliverables in green represent unit tests that you must write and pass.

deliverables

Example

When you complete the entire project, you should have something similar to the following where two client command line programs take turns playing a game of chess.

chess board