Microservice module for handling card games and the ranking system in the web application for card games. The second one microservice is rensponsible for user accounts. Game-server storages data in PostgreSQL database which is not directly shared with other microservice. Communication between microservices uses RabbitMQ queues. Architecture is graphicly described in Architecture diagram
- Python
- Django
- PostgreSQL
- Redis
- Websockets
- RabbitMQ
- Celery
- Docker/Docker compose
- PlantUML
TODO: translate UML diagrams to english
docker-compose up --build
docker compose exec game_server celery -A gameserver beat -l info
docker compose exec game_server celery -A gameserver worker -l info
docker compose exec game_server python games/ranking_worker.py
$ virtualenv grkrcn-env
Linux
$ source grkrcn-env/bin/activate
Windows
> grkrcn-env\bin\activate
$ pip install -r requirements.txt
Create .env file or rename .env.local to .env
Dont use certs (saml/certs/) from repository. To generate new certs use
openssl req -new -x509 -days 3652 -nodes -out sp.crt -keyout sp.key
In production saml/settings.json strict param MUST be set as "true"
$ python manage.py migrate
$ python manage.py runserver
docker compose exec game_server python manage.py test
docker compose exec game_server python manage.py loaddata populate.json
docker compose exec game_server python manage.py createsuperuser