Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 2.64 KB

CHALLENGE.md

File metadata and controls

61 lines (44 loc) · 2.64 KB

HU Desafio Bravo

Construa uma API, que responda JSON, para conversão monetária. Ela deve ter uma moeda de lastro (USD) e fazer conversões entre diferentes moedas com cotações de verdade e atuais.

A API deve converter entre as seguintes moedas:

  • USD
  • BRL
  • EUR
  • BTC
  • ETH

Ex: USD para BRL, USD para BTC, ETH para BRL, etc...

A requisição deve receber como parâmetros: A moeda de origem, o valor a ser convertido e a moeda final.

Ex: ?from=BTC&to=EUR&amount=123.45

Você pode usar qualquer linguagem de programação para o desafio. Abaixo a lista de linguagens que nós aqui do HU temos mais afinidade:

  • JavaScript (NodeJS)
  • Python
  • Go
  • Ruby
  • C++
  • PHP

Você pode usar qualquer framework. Se a sua escolha for por um framework que resulte em boilerplate code, por favor assinale no README qual pedaço de código foi escrito por você. Quanto mais código feito por você, mais conteúdo teremos para avaliar.

Requisitos

  • Forkar esse desafio e criar o seu projeto (ou workspace) usando a sua versão desse repositório, tão logo acabe o desafio, submeta um pull request.
  • O código precisa rodar em macOS ou Ubuntu (preferencialmente como container Docker)
  • Para executar seu código, deve ser preciso apenas rodar os seguintes comandos:
    • git clone $seu-fork
    • cd $seu-fork
    • comando para instalar dependências
    • comando para executar a aplicação
  • A API precisa suportar um volume de 1000 requisições por segundo em um teste de estresse.

Critério de avaliação

  • Organização do código: Separação de módulos, view e model, back-end e front-end
  • Clareza: O README explica de forma resumida qual é o problema e como pode rodar a aplicação?
  • Assertividade: A aplicação está fazendo o que é esperado? Se tem algo faltando, o README explica o porquê?
  • Legibilidade do código (incluindo comentários)
  • Segurança: Existe alguma vulnerabilidade clara?
  • Cobertura de testes (Não esperamos cobertura completa)
  • Histórico de commits (estrutura e qualidade)
  • UX: A interface é de fácil uso e auto-explicativa? A API é intuitiva?
  • Escolhas técnicas: A escolha das bibliotecas, banco de dados, arquitetura, etc, é a melhor escolha para a aplicação?

Dúvidas

Quaisquer dúvidas que você venha a ter, consulte as issues para ver se alguém já não a fez e caso você não ache sua resposta, abra você mesmo uma nova issue!

Boa sorte e boa viagem! ;)

Challange accepted