A arquitetura inclui um sistema de filas com RabbitMQ e persistência de dados em MongoDB. A aplicação em Python atua como fornecedora de dados, populando um banco de dados que é consumido por uma aplicação em .NET.
Essa aplicação em .NET, por sua vez, atua como produtora de mensagens, publicando-as em uma fila RabbitMQ. Um consumidor desenvolvido em Node.js consome essas mensagens, processa os dados e os armazena.
Por fim, essa aplicação em Node expõe dois endpoints que são consumidos por uma interface frontend construída em Vue.js, responsável por exibir os dados de forma organizada e interativa.
📋 Sumary
- ⚙️ Tech Stack
- 🤖 Como usar
- 🤝 Contribuições
- 👥 Autores
- Python 3.11
- Dotnet 9.0 (C#)
- Node.js 20
- Vue 3 (Composition API) com Vite e Element Plus
- MongoDb
- RabbitMq
Para iniciar o projeto, siga os seguintes passos em seu dispositivo:
00 - Pré-requisitos
Para usar este projeto você deve ter instalado previamente os seguintes pacotes:
- dotnet 9.0
- python 3.0
- node 20
- Docker
01 - Rodar os projetos
Após clonar o repositório, abra o terminal e execute o comando abaixo:
docker compose up --build -d02 - Ingestão dos Dados
Acesse o Flasgger da aplicação em Python ou via postman usando o curl abaixo:
Valores aceitos para o size:
- small = 500 registros
- medium = 5.000 registros
- large = 10.000 registros
curl -X POST "http://localhost:5000/creators" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"size\": \"small\"}"obs: Caso opte por colocar diversos registros e sinta lentidão nas consultas,no Flasgger tem um endpoint que configura indexes para facilitar a consulta no banco de dados.
03 - Visualização dos Dados
Acesse o frontend pelo caminho http://localhost:5173/ para visualização dos dados
Extra - Endpoints utilizados pelo frontend Também é possível visualizar os dados diretamente pelos endpoints da aplicação Node.js. Com os serviços em execução, acesse os links abaixo no navegador:
- Aba Content Type Resume: http://localhost:3000/content-type-resume
- Aba All Creators: http://localhost:3000/all-creators
|
|
Felipe Crovesy | LinkedIn | GitHub |