/daily-diet-api-challenge

Desafio Node.JS da Rocketseat de uma API para controle de dietas diárias.

Primary LanguageTypeScriptMIT LicenseMIT

Aplicação back-end desenvolvida durante a formação Node.JS na plataforma da Rocketseat.

License


📁 Sobre o projeto

Esta é uma API desenvolvida para completar o desafio 02 do módulo criando APIs RESTfull com Node.js da formação Node.Js na plataforma da Rocketseat o qual estou participando. A aplicação consiste em um sistema de controle para dietas diárias no qual o usuário se cadastra com nome e email e pode iniciar o acompanhamento de suas dietas no dia a dia cadastrando as refeições feitas.


📝 Regras da aplicação

  • 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:

    As refeições devem ser relacionadas a um usuário.

    • Nome
    • Descrição
    • Data e Hora
    • Está dentro ou não da dieta
  • 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 editar uma refeição, podendo alterar todos os dados acima
  • Deve ser possível apagar uma 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
  • O usuário só pode visualizar, editar e apagar as refeições o qual ele criou

✅ Requisitos

  • Node.js versão 20 ou superior.

💻 Tecnologias

  • Fastify
  • Zod
  • JavaScript
  • Typescript
  • SQLite
  • ESLint
  • Dotenv
  • Knex
  • Tsx
  • @fastify/cookie
  • @rocketseat/eslint-config
  • @types/node

💡 Utilização

  1. Clone o projeto:
$ git clone https://github.com/JaasielAntunes/daily-diet-api-challenge.git
  1. Acesse a pasta do projeto:
$ cd daily-diet-api-challenge
  1. Instale as dependências:
$ npm install
  1. Execute:
$ npm run knex -- migrate:latest
  1. Inicie o servidor:
$ npm run dev

💻 Rotas HTTP

POST /users

Cadastrar usuário

Corpo da requisição

{
    "name": "José",
    "email": "jose@gmail.com"
}

POST /meals

Cadastrar refeição

Corpo da requisição

{
  "name": "Café da Manhã",
  "description": "Cuscuz, Iame e Frango Grelhado",
  "isOnDiet": true,
  "date": 20022024
}

PUT /meals/:mealId

Atualizar uma refeição

Corpo da requisição

{
  "name": "Almoço",
  "description": "Batata doce, ovo cozido e salada",
  "isOnDiet": true,
  "date": 20022024
}

GET /users

Retorna todas os usuários cadastrados.

GET /meals

Retorna todas as refeições cadastradas.

GET /meals/metrics

Retorna as métricas da dieta realizada.

GET /users/:userId

Retorna um usuário específico.

GET /users/:mealId

Retorna uma refeição específica.

DELETE /users/:mealId

Deleta uma refeição específica.


✅ Sugestão

  • Utilize o Postman ou Insomnia para testar as requisições.

Feito com ❤️ by Jaasiel Antunes - Entre em contato!

Jaasiel Antunes