Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alina1412/task_with_rabbitmq
Project provides take feedback from users (frontend form), process it and save to database through rabbitmq.
https://github.com/alina1412/task_with_rabbitmq
alembic asyncio docker-compose fastapi poetry postgres rabbitmq sqalchemy tornado
Last synced: 2 months ago
JSON representation
Project provides take feedback from users (frontend form), process it and save to database through rabbitmq.
- Host: GitHub
- URL: https://github.com/alina1412/task_with_rabbitmq
- Owner: alina1412
- Created: 2022-11-28T09:05:39.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T08:33:48.000Z (about 2 years ago)
- Last Synced: 2023-03-11T07:06:31.540Z (almost 2 years ago)
- Topics: alembic, asyncio, docker-compose, fastapi, poetry, postgres, rabbitmq, sqalchemy, tornado
- Language: Python
- Homepage:
- Size: 90.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Task with rabbitmq
## Description
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.## How it works (from the frontend outside view)
video (1 min):
[![Watch the video](https://img.youtube.com/vi/QXJ_mjqCwfQ/2.jpg)](https://youtu.be/QXJ_mjqCwfQ)
## How to run locally
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## Tools used
- rabbitmq
- tornado
- fastapi
- docker-compose
- postgres db
- alembic
- poetry
- pydantic
- javascript, html
- asyncio