For how to use the API to play the game in Elixir shell, please see documentation in module TicTacToe.
For the explanation of the mechanism of handling concurrency and fault-tolerance, please see documentation in module TicTacToe.Router.
Start with
$ iex -S mix
(iex)1> h TicTacToe
To run the tests, please used
mix test --no-start
This is a challenge assignment I wrote during the recruitment process of a company I applied.
Below are some of the original requirments that came with the challenge.
- if the project works & respects the spec
- your approach to the problem
- your tests
- your use of OTP (if you decide to use it)
- your domain modelling
- your choice of technologies
The challenge, if you decide to accept it, is to create a tic-tac-toe game server.
- your project should be well tested because you're not a monster
- your Git history should be meaningful
- if your project involves a few different technologies, a
docker-compose
setup will be appreciated
Good luck! not that you need any :)
- less is more
- domain modelling is important
- SOLID
- choose the right tool for the right job.
The spec is deliberately lightweight, as we want to see how you are approaching the task and what solution(s) you can come up with.
- the server needs to be able to handle multiple concurrent games
- if a game crashes, we should be able to recover to a good state automatically
- we should be able to play by launching your project with
iex -S mix