This is a 2-player implementation of chess playable in a browser. It is a rework of a pure Ruby implementation of chess I did in partial fulfillment of The Odin Project. The driving motivation is to build a fully independent chess API consumable by a variety if client types. If you're interested in building a client to interact with this API, just fork submit a PR.
- Play as a guest in hotseat mode with another guest account on the same computer (under construction)
- Authenticated account allowing you to save and load games (coming soon)
- Multiplayer over sockets with other authenticated users (coming soon)
- The chess logic is self-contained in a module and housed in app/lib
- It is called through a limited number of class methods for top-level tasks as listed below
- It has no interactions with the database (which are handled by Rails models)
For a given game instance, the API provides a JSON dump that includes data for the game, white, and black players. It should also contains an array of available moves (expressed "a3") for each piece.
Endpoints:
- Business logic API for the board, game, pieces, and saved games
- Complete Rspec test coverage
- Rails ActionCable and Redis for multiplayer
- JSON serialization
- Authorization with Devise
- Create-react-app for front end of app
- Redux to handle data
.position_pieces
: consumes