The following project implements a web application using Django REST framework (backend) and React (frontend) of a classic board game for a subset of rules.
For an introduction to the game it is recommended to read its basic rules in principle and then its detailed rules.
- node ^ 12.13.0
- npm ^ 6.12.0
To install them (in linux) do the following:
In the directory $HOME run wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash. This instals nvm, NodeJS's version control.
2. If the previus command was correct, then run . .bashrc. If there was an error, go to the page [página] nvm.
3. The command nvm --version should now return the version, in this case 0.35.1.
4. Finally, to install node and npm, run nvm install 12.13. Now, it is possible run node -v andnpm -v, and we should the current versions (in this case, v12.13.0 y 6.12.0, respectively)
To install in other operating systems refer to the page mentioned above.
- python ^ 3.7+
- pip
Download the repository with:
git clone https://github.com/panicoro/CattanSettlers.gitFirst install the dependencies for the backend, so go to the create and run the virtualenv:
$ cd CattanSettlers/
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txtThen install all the dependecies for the frontend:
$ npm installIt is important not to run npm update, at least for the moment, since react-scripts does not support new versions of webpack.
To run the server:
$ python manage.py makemigrations catan
$ python manage.py migrate
$ python manage.py runserverThe virtual environment must be activate.
For the frontend, run:
npm startAfter the application completes its loading go to the browser at the following path: http: // localhost: 3000.
Inside the frontend directory, we must run:
$ npm run coverageTo run the tests inside the backend, with the virtual environment activated and with migrations applied (makemigrations catan and migrate), do:
pytest --cov=catan --cov-report term-missing
We follow the code style airbnb javascript. To run the style violation test:
$ ./node_modules/.bin/eslint yourfile.jsThe python code follows the PEP-8 convetions. You can test it with pycodestyle command.