Este desafio faz parte do módulo 2 da trilha de Node.js do Ignite da Rocketseat.
Com esta aplicação é possível o usuário cadastrar uma refeição informando o seu título, descrição, data e hora e se faz parte da dieta. Além de cadastrar as refeições, é possível listar todas refeições, visualizar uma refeição específica, editar refeições, remover refeições e também visualizar as métricas do usuário como: total de refeições cadastradas, total de refeições fora e dentro da dieta e maior sequência de refeições dentro da dieta.
- Deve ser possível criar um usuário
- Deve ser possível registrar uma refeição feita
- 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 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 que ele criou
-
POST /users: Deve ser possível criar um novo usuário, enviando pela requisição o nome, username, email e senha.
-
POST /meals: Deve ser possível criar uma nova refeição, enviando pela requisição o nome, descrição, data e hora e se está dentro da dieta ou não.
-
GET /meals: Deve ser possível listar todas as refeições cadastradas pelo usuário.
-
GET /meals/:id: Deve retornar a refeição recebendo um id no parâmetro.
-
GET /meals/summary: Deve retornar todas as métricas do usuário, tais como: Total de refeições cadastradas pelo usuário, total de refeições dentro e fora da dieta e sequência de refeições dentro da dieta.
-
PUT /meals/:id: Deve ser possível editar uma refeição cadastrada. O usuário deve passar como parâmetro o id da refeição e no corpo as informações que serão atualizadas.
-
DELETE /meals/:id: Permite apagar refeições do banco de dados.
Para executar a aplicação siga os seguintes passos:
- Clone e acesse o repositório:
git clone https://github.com/andersondev96/ignite-nodejs-2023-desafio02-api-rest-nodejs
cd ignite-nodejs-2023-desafio02-api-rest-nodejs
- Instale as dependências do projeto:
npm install
- Adicione as seguintes chaves no .env:
NODE_ENV=development
DATABASE_CLIENT=sqlite
DATABASE_URL="./db/app.db"
- Execute as migrations:
npm run knex -- migrate:latest
- Execute o projeto com o comando:
npm run dev
- O servidor irá rodar na porta localhost:3333
Este projeto está sob a licença MIT.
Anderson Fernandes Ferreira
Feito com 💚 por Anderson Fernandes 👋 Entre em contato!