Git Product home page Git Product logo

franciniltonsoaresmenzes / daily-diet-api-rest Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 83 KB

Este projeto consiste em uma API REST em Node.js para gerenciar sua dieta. Com esta aplicação, você pode cadastrar novas refeições, excluir refeições existentes e visualizar métricas importantes para sua dieta, como quantidades totais de alimentos dentro e fora da dieta.

TypeScript 100.00%
api-rest cookie fastify typescript zod daily ignite-rocketseat desafio-rocketseat e2e-tests supertest testing vitest

daily-diet-api-rest's Introduction

logo do ignite

Desafio 02: Daily Diet API

Funcionalidades

Este projeto consiste em uma API REST em Node.js para gerenciar sua dieta. Com esta aplicação, você pode cadastrar novas refeições, excluir refeições existentes e visualizar métricas importantes para sua dieta, como quantidades totais de alimentos dentro e fora da dieta.

Rotas

  • POST - /daily/register/

    Criar um novo usuario, recebendo no body da requisição email e password

  • POST - /daily/login/

    Fazer um novo login, recebendo no body da requisição email e password

  • GET - /daily/snacks/

    Listar todos os registros de dietas no banco de dados.

  • POST - /daily/snacks/

    Criar uma nova refeição, recebendo no body da requisição name, description e isInDiet.

  • GET - /daily/:id

    Listar apenas uma dieta especificas no banco de dados.

  • DELETE - /daily/:id

    Deletar apenas uma dieta especificas no banco de dados.

  • PUT - /daily/:id

    Alterar dados de apenas uma dieta especificas no banco de dados.

  • GET - /daily/summary

    Mostar metricas como quantidade total de refeições registradas, quantidade total dentro da dieta.

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:

    • Nome
    • Descrição
    • Data e hora
    • Está dentro ou não da dieta
  • 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 por dia de refeições dentro da dieta.
  • O usuário só pode visualizar, editar e apagar as refeições o qual ele criou.

🛠️ Tecnologias

  • Node.Js
  • Typescript
  • Zod
  • Fastify
    • @fastify/cookie
  • Eslint
  • Vitest
  • Supertest
  • Tsx
  • Sqlit 3 para ambiente de desenvolvimento.

👷 Requisitos

# Clone repository

$ git clone https://github.com/franciniltonsoaresmenzes/daily-diet-api-rest.git

# Go to server folder

$ cd daily-diet-api-rest
# Install Dependencies

$ npm i

# Rename file .env.example to .env

# Rename file .env.test.example to .env.test

# Run script Knex

$ npm run knex -- migrate:latest

# Run aplication

$ npm run dev

# Access localhost
# http://localhost:3333

daily-diet-api-rest's People

Contributors

franciniltonsoaresmenzes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.