- Pre-Requisitos
- Sobre o projeto
- Lista de Endpoints
- Como rodar o projeto
- Como executar os tests
- Lista de tarefas
- node
- docker-compose
Projeto criado para seguir um fluxo simples de um pedido de uma compra com uso de filas de mensagens.
- Docker para conteinerização
- NodeJS com a utilização de Typescript
- Express usado para a criação das rotas
- Hapi/joi para verificação dos dados
- Knex para o gerenciamento do banco de dados relacional (PostgreSQL)
- RabbitMQ como o serviço de mensageria
- Mongoose para armazenamento de logs (MongoDB)
- Winston para controle de logs em arquivo de texto e no console
POST /order/create/
{
"customer": {
"name": "Fulano",
"document": "25892913023"
},
"items": [
{
"id": "A624659A-009C-4A18-92BD-2EF1FEC06802",
"amount": 2
},
{
"id": "63BDA413-3693-434F-AFC9-8DD13B2B6107",
"amount": 1
}
],
"address": {
"zip_code": "06663289",
"house_number": "743",
"street": "Av. Sagitário",
"neighborhood": "Alphaville Conde II",
"city": "Barueri",
"uf": "SP",
"complement": "",
"reference": "perto do posto de gasolina"
}
}{
"message": "Order placed successfully"
}$npm run dockerO endpoint ficará disponível na seguinte url: http://localhost
$npm run test- Modelagem e criação do banco de dados relacional (PostgreSQL)
- Criação da rota para criação do pedido
- Envio do pedido para a fila de mensagens
- Controle dos logs em arquivo e no banco não relational (MongoDB)
- Criar o consumidor para as mensagens de pedido na fila
- Criar o consumidor para as mensagens de notificação na fila
- Testes unitários com cobertura de pelo mennos 75% (~50% atualmente)