Segundo desafio do curso de Node.js da Rocketseat.
Consiste na implantação de uma API que permite o usuário a criar conta, editar seus dados e fazer login para adicionar e controlar suas refeições diárias.
Além disso, o usuário pode também obter métricas de total de calorias, melhor sequência de pratos na dieta, entre outros indicadores.
- Node w/ Typescript
- Fastify
- Supertest
- Vitest
- Knex & SQLite
- Zod
- Deve ser possível criar um usuário
- Deve ser possível identificar o usuário entre as requisições
- Deve ser possível registrar uma refeição feita, com as seguintes informações:
- Nome
- Descrição
- Data e Hora
- Está dentro ou não da dieta
- Quantidade de calorias
- Tipo de refeição (café da manhã, lanche, almoço, janta)
- Deve ser possível editar uma refeição, podendo alterar todos os dados acima
- Deve ser possível apagar uma refeição
- Deve ser possível listar todas as refeições de um usuário
- Deve ser possível visualizar uma única refeição
- Deve ser possível recuperar as métricas de um usuário
- Quantidade total de refeições registradas
- Quantidade total de refeições dentro da dieta
- Quantidade total de refeições fora da dieta
- Melhor sequência de refeições dentro da dieta
- Total de calorias de todas refeições
- Total de calorias de pratos na dieta
- Total de calorias de pratos fora da dieta
- O usuário só pode visualizar, editar e apagar as refeições o qual ele criou
- Documentação em swagger
- Deve ser possível deletar um usuário
- Deve ser possível editar um usuário
- Permitir que os usuários registrem a quantidade de calorias para cada refeição
- Permitir que os usuários categorizem suas refeições em grupos como café da manhã, almoço, jantar, lanches, etc
- Implementação de testes de integração
- Testes das Rotas de Usuários:
- Deve ser possível criar um usuário
- Deve ser possível logar um usuário
- Deve ser possível editar um usuário
- Não deve ser possível criar um usuário com email duplicado
- Testes das Rotas de Refeições
- Deve ser possível cadastrar uma refeição
- Deve ser possível editar uma refeição
- Deve ser possível buscar uma refeição por um ID
- Testes das Rotas de Usuários:
Clone o projeto
git clone https://link-para-o-projeto
Entre no diretório do projeto
cd my-project
Instale as dependências
npm install
Inicie o servidor
npm run dev
Documentação feita no Swagger. Para acessar, rode o projeto localmente com npm run dev
e acesse as rotas para testar.
Para rodar os testes, rode o seguinte comando
npm run test
- Documentar rotas com Swagger integrado ao Fastify
- Testes de integração com o Vitest e Supertest
- Aprofundamento no conhecimento do query builder Knex
- Estruturação de código e tipagem com TypeScript
- Melhor entendimento de API's e como tratar e verificar dados e devolver respostas ao cliente
- Testes unitários
- Reestruturação para implementação de princípio SOLID
- Utilização de Token para identificação do usuário.