wip - an attempt to build an async online chess server using rust and web assembly. Web server is Warp. Runtime is Tokio. DB is PostgreSQL and caching of game state is done with Redis. Server uses GraphQL with the async-graphql implementation. UI uses Rust WASM on the Seed framework with Tailwind CSS and is built using Trunk.
- install Rust v1.53 or above
- the ui is built using a Rust WASM build tool called Trunk. Follow these instructions to get Trunk installed
- database is PostgreSQL. We use SQLx to interact with the db. Installing the CLI will be useful to run the migrations
- account creation
- login ( password salting, hashing )
- guest account
- profile page with win / losss / draw info
- a player can search for another player to challenge
- prevent challenges to offline players
- ability to face a random online player
- can open multiple games with multiple players
- close connection if no activity within time limit
- draw board and pieces
- allow piece movement
- implement piece capturing
- implement castling
- implement en passant
- disallow illegal moves
- implement elo system
- implement different time controls
- implement pre-moving
- implement move history (see what the previous moves were)