This project demonstrates mastery of proper software design, client/server architecture, networking using HTTP and WebSocket, database persistence, unit testing, serialization, and security.
The application implements a multiplayer chess server and a command line chess client.
The application has three modules.
- Client: The command line program used to play a game of chess over the network.
- Server: The command line program that listens for network requests from the client and manages users and games.
- Shared: Code that is used by both the client and the server. This includes the rules of chess and tracking the state of a game.
