https://github.com/brunoevangelista17/saque-caixa-eletronico-rota

Esta API simula o funcionamento de um caixa eletrônico. Ela recebe um valor de saque desejado e retorna a quantidade de cédulas de cada valor necessárias para compor esse saque, utilizando a menor quantidade de cédulas possível. As cédulas consideradas são: 100, 50, 20, 10, 5 e 2.

https://github.com/brunoevangelista17/saque-caixa-eletronico-rota

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.4%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Esta API simula o funcionamento de um caixa eletrônico. Ela recebe um valor de saque desejado e retorna a quantidade de cédulas de cada valor necessárias para compor esse saque, utilizando a menor quantidade de cédulas possível. As cédulas consideradas são: 100, 50, 20, 10, 5 e 2.

Basic Info
  • Host: GitHub
  • Owner: BrunoEvangelista17
  • Language: JavaScript
  • Default Branch: main
  • Size: 672 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme

README.md

Projeto Desafio Técnico Morada.ai: Caixa Eletrônico API

Descrição

Esta API simula o funcionamento de um caixa eletrônico. Ela recebe um valor de saque desejado e retorna a quantidade de cédulas de cada valor necessárias para compor esse saque, utilizando a menor quantidade de cédulas possível. As cédulas consideradas são: 100, 50, 20, 10, 5 e 2.

Tecnologias Utilizadas

  • JavaScript
  • Node.js
  • Express

Principais Desafios

  • Tornar o projeto de fácil compreensão: A implementação foi feita de forma clara e modular, com comentários explicativos no código para facilitar o entendimento.
  • Tornar o projeto eficiente: A lógica implementada calcula a quantidade mínima de cédulas necessárias de maneira eficiente, com o mínimo de linhas possivel porém com o resultado desejado.
  • Retornar pela rota o valor obtido pela lógica: O valor de saque é processado e retornado diretamente pela rota /api/saque, visto que não tinha familiaridade a rotas que não fizessem requisições ao banco de dados.
  • Criar um passo a passo coeso e claro para o usuário: O guia de execução foi elaborado para ser seguido facilmente por qualquer usuário, desde a instalação até a realização das requisições.

Como Executar o Código

Pré-requisitos

  • Node.js instalado

Passo a Passo

  1. Instalar Dependências

    • Abra o terminal da sua IDE e navegue até a pasta onde está localizado o arquivo package.json.
    • Execute o comando abaixo para instalar as dependências do projeto: bash npm install
  2. Iniciar o Servidor

    • Após a instalação do pacote Express, execute o comando abaixo para iniciar o servidor: bash node index.js
  3. Fazer uma Requisição

    • Utilize um cliente HTTP como curl ou Postman para fazer uma requisição ao endpoint. Exemplo de comando usando curl: bash curl -X POST -H "Content-Type: application/json" -d '{"valor": 380}' http://localhost:3000/api/saque
  4. Receber a Resposta

    • Você deve receber uma resposta similar a esta: json { "100": x, "50": y, "20": z, "10": a, "5": b, "2": c }
    • Onde x, y, z, a, b e c são inteiros representando a quantidade de cada cédula necessária para o valor de saque solicitado.

Estrutura do Projeto

O projeto possui a seguinte estrutura:

  • index.js: Arquivo principal que contém a lógica da API e a inicialização do servidor.

Observações

  • Certifique-se de que a porta 3000 não está sendo utilizada por outro serviço para evitar conflitos.
  • Caso precise alterar a porta do servidor, modifique a constante PORT no arquivo index.js.

Owner

  • Login: BrunoEvangelista17
  • Kind: user

GitHub Events

Total
  • Member event: 1
  • Push event: 1
  • Pull request event: 1
  • Create event: 1
Last Year
  • Member event: 1
  • Push event: 1
  • Pull request event: 1
  • Create event: 1

Dependencies

package-lock.json npm
  • accepts 1.3.8
  • array-flatten 1.1.1
  • body-parser 1.20.2
  • bytes 3.1.2
  • call-bind 1.0.7
  • content-disposition 0.5.4
  • content-type 1.0.5
  • cookie 0.6.0
  • cookie-signature 1.0.6
  • debug 2.6.9
  • define-data-property 1.1.4
  • depd 2.0.0
  • destroy 1.2.0
  • ee-first 1.1.1
  • encodeurl 1.0.2
  • es-define-property 1.0.0
  • es-errors 1.3.0
  • escape-html 1.0.3
  • etag 1.8.1
  • express 4.19.2
  • finalhandler 1.2.0
  • forwarded 0.2.0
  • fresh 0.5.2
  • function-bind 1.1.2
  • get-intrinsic 1.2.4
  • gopd 1.0.1
  • has-property-descriptors 1.0.2
  • has-proto 1.0.3
  • has-symbols 1.0.3
  • hasown 2.0.2
  • http-errors 2.0.0
  • iconv-lite 0.4.24
  • inherits 2.0.4
  • ipaddr.js 1.9.1
  • media-typer 0.3.0
  • merge-descriptors 1.0.1
  • methods 1.1.2
  • mime 1.6.0
  • mime-db 1.52.0
  • mime-types 2.1.35
  • ms 2.0.0
  • ms 2.1.3
  • negotiator 0.6.3
  • object-inspect 1.13.2
  • on-finished 2.4.1
  • parseurl 1.3.3
  • path-to-regexp 0.1.7
  • proxy-addr 2.0.7
  • qs 6.11.0
  • range-parser 1.2.1
  • raw-body 2.5.2
  • safe-buffer 5.2.1
  • safer-buffer 2.1.2
  • send 0.18.0
  • serve-static 1.15.0
  • set-function-length 1.2.2
  • setprototypeof 1.2.0
  • side-channel 1.0.6
  • statuses 2.0.1
  • toidentifier 1.0.1
  • type-is 1.6.18
  • unpipe 1.0.0
  • utils-merge 1.0.1
  • vary 1.1.2
package.json npm
  • express ^4.19.2