Chess pieces é uma API onde é possível fazer um CRUD de peças de xadrez.
Além do CRUD, é possível fornecer uma posição do tabuleiro em notação algébrica junto com o ID de uma das peças existentes, se a peça for um cavalo ela fornecerá todos os movimentos possíveis para os próximos 2 turnos.
-
Clone o repositório
-
Crie um ambiente virtual com o virtualenv
- Instale
[sudo] pip install virtualenv
- Após instalar, crie o seu ambiente virtual:
virtualenv <nome_do_seu_ambiente>
- Ative o seu ambiente:
source <nome_do_seu_ambiente>/bin/activate
- Se preferir, para usar o virtualenv com uma versão diferente do python
virtualenv --python=usr/python3.6/nome_env
- Instale os requirements de desenvolvimento ou os requirements apenas para execução:
pip install -r requirements/dev.txt
- Instale o docker
sudo apt install docker
- Instale o docker compose
sudo apt install docker-compose
- [Recomendado] Após a instalação do docker é interessante fornecer a permissão de super usuário, caso contrário você terá que usar "sudo" sempre que precisar usar qualquer comando do docker
sudo groupadd docker
sudo gpasswd -a $USER docker
Será necessário fazer log out and log back
- Diga ao compose para usar o arquivo desenvolvimento.yml
docker-compose -f desenvolvimento.yml up -d
- Pode ser necessário reiniciar o docker compose
docker-compose -f desenvolvimento.yml restart -t 1
- Execute as migrations
src/python manage.py migrate
- Para executar os testes:
src/pytest
- Suba o servidor local:
src/python manage.py runserver
- Para criar uma nova peça:
curl -X POST -d 'name={nome da peça}' -d 'color={cor da peça}' 'http://127.0.0.1:8000/'
- Buscar uma peça por nome e cor:
curl "http://127.0.0.1:8000/?name={nome da peça}&color={cor da peça}"
- Listar os movimentos possíveis de um cavalo para os próximos 2 turnos:
curl "http://127.0.0.1:8000/moves/?cell={celula em notação algebrica}&piece_id={id do cavalo}"
- Listar todas as peças existentes:
curl 'http://127.0.0.1:8000/'
- Buscar uma peça por ID:
curl 'http://127.0.0.1:8000/{id}/'
- Editar uma peça:
curl -X PUT -d 'name={novo nome}' -d 'color={nova cor}' 'http://127.0.0.1:8000/{id}/'
- Apagar um contato:
curl -X DELETE 'http://127.0.0.1:8000/{id}/'