Skip to content

Latest commit

 

History

History
77 lines (54 loc) · 4.11 KB

README.md

File metadata and controls

77 lines (54 loc) · 4.11 KB

Code Challenge ProUnion #1 - Backend

Aplicação de Lista de Tarefas

Status GitHub Issues GitHub Pull Requests License


Tabela de Conteúdos

Sobre

A API segue as orientações básicas do desafio. Procurei seguir as orientações do ExpressJS tanto na parte de segurança quanto na parte do deploy. Isso se traduziu em Rate Limiting, Logs espalhados pela aplicação, Error Handling generalizado e outros ajustes menores.

Para além do pedido, a rota de listagem das tarefas (GET /tasks) retorna os dados "paginados", sendo possível verificar tais dados a partir dos headers X-Total-Count (número total de items, no caso tarefas) e X-Total-Pages.

A validação dos dados é feita com Class Validator a partir de middlewares, impedindo que a requisição chegue nas camadas seguintes (regras de negócio) caso algo não esteja de acordo.

Este desafio foi feito após o Desafio 2, parte do código foi reaproveitado.

Requisitos

Uso

  • Primeiro clone o projeto: git clone https://github.com/RenanGalvao/code-challenge-prounion-1.git
  • Acesse a pasta clonada code-challenge-prounion-1

Desenvolvimento

  • Navegue até a pasta backend
  • Crie uma cópia do arquivo .env.example com o nome de .env
  • Instale os pacotes necessários npm install
  • Suba o servidor npm run dev
  • URL de acesso: http://localhost:3000

Produção

Inicie o projeto a partir do arquivo docker-compose.yml da pasta raiz.

Rotas

  • GET /tasks retorna a lista de tarefas cadastradas, aceita parâmetros de pesquisa page e itemsPerPage, sendo ambos valores númericos.
  • GET /tasks/:id retorna dados da tarefa associado ao id.
  • POST /tasks cria uma nova tarefa e retorna seus dados, espera um JSON com as chaves description e done.
  • PUT /tasks/:id atualiza e retorna os dados da tarefa associada ao id, o JSON esperado contém as mesmas chaves que o da criação.
  • DELETE /tasks/:id remove a tarefa associada ao id.
  • GET /health utilizada para verificar a saúde da API, retorna o uptime da aplicação.

Principais Tecnologias

Autor

@RenanGalvao

Possíveis Erros