Online chess game client/server. Playable, but still definitely WIP. Try it out here
Frontend is written in Elm.
Backend is written in Elixir using the Phoenix web framework
A lot of the game communciation is done with websockets. I used Phoenix channels to manage the connections.
I used the erlang library binbo for most of the chess logic.
I used mdgriffith/elm-ui for the user interface.
This is my first elixir project. I'm fairly certain that the backend isn't structured very idiomatically for elixir.
it has cool features like:
- refresh the game whenever you want with no consequences
- works on my phone, might work on yours
- no user accounts
- play with your friends
- no chat, so nobody can tell me how bad at chess I am
- Elixir 1.10.2
- Erlang 22.3
- Elm 0.19.1
All code blocks are to be run in a shell starting at the project root.
Install Elixir, Erlang, and Elm however you like, then:
mix deps.get
cd assets/
npm install
elm install
mix phx.server
- Open
localhost:4000/chess
in your browser. - Click "new game"
- Copy the invite link and open in an incognito window/other browser.
mix test
First run will be incredibly slow (like, 3-10 minutes)
mix dialyzer
cd assets/
elm-test
Chess piece SVGs are from wikimedia user Colin Burnett
They released them under the following licenses: GFDL, BSD, GPL