Skip to content

Wilsonfabozi/docker-node-order

Repository files navigation

Tempo Frontend challenge

typescript-version node-version docker-version postgresql-version mongodb-version rabbitmq-version

📑 Conteudo

👨‍🔧 Pré-requisitos

  • node
  • docker-compose

Back to top

🧙‍♂️ Sobre o projeto

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

Back to top

Lista de Endpoints

Criar pedido

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"
    }
  }

Response

{
  "message": "Order placed successfully"
}

👨‍💻 Como executar o projeto

$npm run docker

O endpoint ficará disponível na seguinte url: http://localhost

👷‍♂️ Como rodar os tests

$npm run test

Back to top

📝 Lista de tarefas

  • 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)

Back to top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages