Hoje nossos clientes precisam saber quanto custa antecipar uma transação, e para isso, precisamos desenvolver uma calculadora de antecipação para que os mesmos consigam saber quais valores receberão caso optem por antecipar o recebimento.
O objetivo era desenvolver o teste seguindo os requisitos abaixo.
- Use componentização.
- Os períodos de recebimento devem ser configuráveis já que a API pode receber uma lista de periódos para realizar os cálculos.
Lembrando que extra não é obrigatório, mas seria um diferencial a implementação.
- Faça testes unitários e/ou de ponta-a-ponta (end-to-end)
Os possíveis cenários devem ser cobertos e terem soluções implementadas. Não foi desenvolvido layout para isso, pois queremos observar como você lidará com eles:
- Demora de respostas da API
- Timeout da API
- Conexão lenta
- Usuário estar offline
Projeto desenvolvido durante o curso de Desenvolvimento FullStack oferecido pela Kenzie Academy Brasil. A Kenzie é uma escola de programação com um ensino de qualidade que capacita seus aluno para se tornarem desenvolvedores FullStack em 12 meses!
O layout proposto para essa calculadora pode ser visto na imagem abaixo.
Você consumirá uma API já existente no endereço abaixo. Em seguida há uma especificação simplificada dela.
https://frontend-challenge-7bu3nxh76a-uc.a.run.app
`$ curl --request POST
--url https://frontend-challenge-7bu3nxh76a-uc.a.run.app
--header 'content-type: application/json'
--data '{"amount": 15000,
"installments": 3,
"mdr": 4
}
{"1":13267,"15":13536,"30":13824,"90":14400}`
`$ curl --request POST
--url https://frontend-challenge-7bu3nxh76a-uc.a.run.app
--header 'content-type: application/json'
--data '{"amount": 15000,
"installments": 3,
"mdr": 4,
"days": [30, 60, 90]
}
{"30":13824,"60":14208,"90":14400}`
Para Timeout basta executar a request post passando timeout
através da query string, exemplo: https://frontend-challenge-7bu3nxh76a-uc.a.run.app?timeout
Para Internal Server Error basta executar a request post passando internalError
através da query string, exemplo: https://frontend-challenge-7bu3nxh76a-uc.a.run.app?internalError
Para Delay de resposta, que pode ser usado como simulador de conexão lenta, basta executar a request post passando delay
, e informando o tempo do delay em milissegundos, exemplo: https://frontend-challenge-7bu3nxh76a-uc.a.run.app?delay=tempoEmMilissegundos
As seguintes ferramentas foram usadas na construção do projeto:
Antes de começar, você vai precisar ter instalado o Git em sua máquina. Além disto é bom ter um editor para trabalhar com o código como [VSCode][vscode]
# Clone este repositório
$ git clone https://github.com/patrickcordeiroestudos/desafio-frontend-kenzie.git
# Acesse a pasta do projeto no seu terminal/cmd
$ cd desafio-frontend-kenzie
# Instale as dependências
$ yarn
# Execute a aplicação em modo de desenvolvimento
$ yarn start
# A aplicação será aberta na porta:3000 - acesse http://localhost:3000
- Faça um fork do projeto.
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
- Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
- Envie as suas alterações:
git push origin my-feature
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Este projeto esta sob a licença MIT.
Feito com ❤️ por Patrick Cordeiro 👋🏽 Entre em contato!