API rest para controle de dieta diária.
- Variáveis de ambiente - armazenamento de dados sensíveis e diferentes para ambiente de teste, desenvolvimento e produção
- Migrations - estruturação e gerenciamento da estrutura do banco de dados de forma versionada e segura
- API REST - criação e estruturação de portas de entrada da aplicação através de rotas HTTP, seguindo o padrão REST
- Cookies - fragmento de dados para manter contexto entre requisições. Nesta aplicação, usado para identificar o usuário com uma simulação de autenticação
- Testes E2E - testes de ponta a ponta na aplicação, simulando toda interação do lado do cliente no servidor
- TypeScript - JavaScript com tipagem estática
- Node.js - interpretador do JavaScript em server-side
- Fastify - framework para construção do servidor
- Knex.js - SQL builder
- Vitest - framework de testes
- 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
- Deve ser possível editar uma refeição
- 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 criar um usuário
- 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
- Deve ser possível identificar o usuário entre as requisições
- O usuário só pode visualizar, editar e apagar as refeições o qual ele criou
Defina as variáveis de ambiente:
# ambiente dev
cp env.example .env
# ambiente de testes
cp env.test.example .env.test
Instale as dependências:
yarn
Crie o banco de dados (não necessita de banco de dados local caso esteja usando SQLite nas variáveis de ambiente):
yarn knex migrate:latest
Rode o projeto
# inicie o servidor
yarn dev
# rode os testes
yarn test