Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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