The project provides functionality to take a feedback from users (a frontend form), process it and save it to the database.
It runs as 5 docker containers.
Frontend -> Backend -> Rabbitmq -> Saving-to-db-service -> db
Frontend gets feedback from users, sends it to backend, which validates it and sends to rabbitmq. The next service retrieves it from the rabbitmq and sends the data to the db. The separation into containers provides the ability of scaling.
if running first time
- create virtual environment (poetry install)
- run
make build
command from Makefile - run
make db-migrate
after all containers started (rabbitmq starts for quite long) - check rabbitmq locally by http://localhost:15672 with username and password from .env
- check frontend locally by http://localhost:8080/
- check db by connecting to it with data from .env
- rabbitmq
- tornado
- fastapi
- docker-compose
- postgres db
- alembic
- poetry
- pydantic
- javascript, html
- asyncio