Planning poker (https://en.wikipedia.org/wiki/Planning_poker), is a consensus-based, gamified technique for estimating, mostly used to estimate effort or relative size of development goals in software development.
Application consists of two separate components UI (written in React) and Backend implementation in Python. The following frameworks and libraries form the base:
-
UI
- React
- Redux
- Material UI
- Mock Service Worker (provides mocking and interception of requests on the network level)
-
Backend
- FastAPI
- Tortoise ORM
- Aerich(database migration tool)
-
General:
Copy existing example of config for frontend:
$ cp frontend/.env.local.example frontend/.env.local
Ensure that your have required ports: 3000 (UI), 8000 (backend), 5432 (Postgres), 6379 (Redis) not being used by any other running applications.
Start local development environment using docker-compose
$ docker-compose up
Compose
will run in a foreground mode placing all the logs from the running containers in the shell. It could be run in a background mode
$ docker-compose up -d
Use docker-compose ps
to check the status of running containers:
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------
plan-cards_backend_1 /start-reload.sh Up 80/tcp, 0.0.0.0:8000->8000/tcp
plan-cards_db_1 docker-entrypoint.sh postgres Up 127.0.0.1:5432->5432/tcp
plan-cards_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
plan-cards_web_1 docker-entrypoint.sh npm start Up 0.0.0.0:3000->3000/tcp
Open http://localhost:3000 to make sure that UI is rendering properly and http://localhost:8000/docs/ to check swagger documentation of the APIs.
UI of game details with a few cast votes for the tasks.
API documentation generated with FastAPI
- Finalise testing of the backend and frontend parts focusing on testing websockets communication
- Implement features of explicit joining for the game as a player
- Set voting time boundaries for each task in the game
- Add explicit authentication backend