Skip to content

Aplicação capaz de calcular o rendimento em quilômetros por litro

Notifications You must be signed in to change notification settings

gusttavocaruso/yieldCheck_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yieldCheck

API capaz de calcular o rendimento (quilômetros por litro) de Carros, Motos, ou afins a partir da interação simples do usuário informando quilometragem atual e litros abastecidos.


API infos:

Hospedada na plataforma HEROKU. Pode ser acessada através DESTE LINK

O Banco de dados utilizado é o banco noSQL MongoDB e está hospedado no MongoCloud Atlas

Para acessar as rotas utilize um client como Insomnia, Postman ou similar.

Se atente para os endpoints que necessitam autenticação via Token JWT.


Para calcular rendimento

  • Crie uma conta na rota POST /account/sign-up;

  • Faça login na rota POST /account/sign-in;

  • Realize o primeiro registro na rota POST /supply/first-setup;

    Ex: Fui abastecer meu carro e no odômetro está marcando 23km rodados. Coloquei R$ 50,00 de gasolina (8,33 litros) portanto, o body deve receber: { odometerKM: 23 litersProvided: 8,33 }

    A primeira interação não fornece retorno, apenas faz o registro dos valores.

  • Agora, utilize a rota PUT /supply/:id para os próximos registros futuros;

    Ex: Fui novamente abastecer meu carro. Agora o odômetro está marcando 98km rodados. Coloquei novamente R$ 50,00 de gasolina portanto: { odometerKM: 98, literProvided: 8,33 }

  • Essa interação retornará o rendimento em KM/L atual;

  • Através da rota GET /supply/current-status é possível consultar o histórico de registros de rendimento e a média desses registros;


Informações para consumo da API

Para testar as rotas você pode utilizar a API hospedada no Heroku ou clonar o projeto para sua maquina, instalar as dependencias via npm install e rodar a API com o comando npm run dev, assim ela ficará disponível na porta :3001

As rotas disponíveis são:

/account/sign-up - requisição HTTP POST:

  • Deve receber um JSON no formato
  {
    "name": "String",
    "email": "[email protected]",
    "password": "String"
  }
  • A rota deve retornar o usuário adicionado ao banco com seu respectivo _id, nome e email.

/account/sign-in - requisição HTTP POST:

  • Deve receber um JSON no formato:
  {
    "email": "[email protected]",
    "password": "String"
  }
  • Essa rota deve retornar um Token JWT.

/supply/first-setup - requisição HTTP POST:

  • Deve receber um JSON no formato:
  {
    "odometerKM": 20,
    "litersProvided": 10
  }
  • Essa rota demanda autenticação JWT para acesso.
  • Essa rota retorna um _id referente a interação - será utilizado na rota PUT /supply/:id;

/supply/:id - requisição HTTP PUT:

  • Deve receber um JSON no formato:
  {
    "odometerKM": 120,
    "litersProvided": 10
  }
  • Essa rota demanda autenticação JWT para acesso.
  • Campo :id deve conter o id referente a interação gerado na resposta de requisição POST /supply/first-setup

/supply/current-status - requisição HTTP GET:

  • Essa rota retorna o rendimento atual (média e histórico) para usuário autenticado (logado).
  • Retornará um json no formato:
  {
    "Usuário": "[email protected]",
    "currentYield": {
      "average": "9.4 KM/L",
      "kmPerLStory": [
        {
          "kmPerL": 8,
          "at": "01/01/2023"
        },
        {
          "kmPerL": 10.8,
          "at": "07/01/2023"
        }
      ]
    }
  }
  • Essa rota demanda autenticação JWT para acesso.

Pretende-se criar um front-end que consumirá essa API.

Issues, sugestões, feedbacks, CR e PR são bem vindos.

Idealizado e desenvolvido por

Gustavo Caruso ©

[email protected]

About

Aplicação capaz de calcular o rendimento em quilômetros por litro

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published