Chess - softwareconstruction240/softwareconstruction GitHub Wiki

🖥️ Videos


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 Video Description
0. Chess moves doc doc Moves Initial chess project.
1. Chess game doc doc Creating the game.
2. Server design None doc Designing the chess server.
3. Web API doc doc Creating an HTTP chess server.
4. Database doc doc Persistently storing players, games, and authentication.
5. Pregame doc doc Creating an command line interface (CLI) for the chess client.
6. Gameplay doc doc Implementing gameplay with multiple players.

Starter Code

In the Chess GitHub Repository assignment, you will create an entire copy of the chess project in a personal repository. This repository includes some files which are provided for you to use later in the semester. These are set aside in the starter-code/ directory of the project. The "Getting Started" instructions for each phase will instruct you on moving these files into the proper location in your project at the appropriate time.

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.

Note

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

Videos (10:25)

⚠️ **GitHub.com Fallback** ⚠️