https://dontpad.com/esoft5s-a-bussola
npm i -D jest @jest/globals @types/jest ts-jest supertest @types/supertest
Utilizando o template para uma API Rest fornecido em:
https://github.com/TI-UNICESUMAR/2024-desafio-profissional-v-ESOFT5S-A
Desenvolva um aplicativo para gerenciamento de tarefas.
check-list:check-list:
[✓] - Entender a atividade, isso envolve ver a atividade
[✓] - Instalar as dependências
[✓] - Criar as entidades
[✓] - Da um check se o servidor está funcionando
[✓] - Criar a service para a entidade escolhida, e fazer o CRUD
[✓] - Fazer a controller
[✓] - Criar as rotas no arquivo de rotas
[✓] - Testar as rotas
[✓] - Partir para as rotas com regra de negócio
Entidades:
[✓] Usuário:
--Atributos: ID, nome de usuário, peso, senha, e-mail.
[✓] Tasks:
--Atributos: ID, título, descrição, data de criação, data de conclusão, tipo, categoria (opcional), status (pendente, em andamento, concluída), e usuário associado.
[✓] Categoria:
--Atributos: ID, nome, cor (para identificação visual).
Tasks:
[✓] Rota para criação de uma nova tarefa.
[✓] Rota para listar todas as tarefas de um usuário.
[✓] Rota para obter detalhes de uma tarefa específica.
[✓] Rota para atualizar uma tarefa existente.
[✓] Rota para excluir uma tarefa.
Categorias:
[✓] Rota para criação de uma nova categoria.
[✓] Rota para listar todas as categorias de um usuário.
[✓] Rota para obter detalhes de uma categoria específica.
[✓] Rota para atualizar uma categoria existente.
[✓] Rota para excluir uma categoria.
Funcionalidades Adicionais utilizando Métodos de Array:
[✓] Rota para filtrar tarefas por categoria.
[✓] Rota para listar tarefas concluídas.
[✓] Rota para listar tarefas pendentes.
Rota para listar tarefas que vencem em um determinado período.
[✓] Rota para contar o número total de tarefas de um usuário.
[✓] Rota para encontrar a tarefa mais recente de um usuário.
Funcionalidades com Métodos de Array:
[✓] Rota para calcular a média de conclusão das tarefas.
[✓] Rota para encontrar a tarefa com a descrição mais longa.
[✓] Rota para agrupar tarefas por categoria.
[✓] Rota para encontrar a tarefa mais antiga de um usuário.
Observação: Estas rotas podem ser implementadas utilizando os métodos .map, .filter, .resume, .some e outros métodos de manipulação de array para alcançar as funcionalidades desejadas, agregando complexidade média a difícil ao projeto.