Considere que, num cenário hipotético, estaremos expandindo os negócios e rompendo as fronteiras brasileiras. Em breve começaremos a vender os nossos produtos no exterior. Acontece que nós enviamos as mercadorias a partir dos nossos centros de distribuição que estão no Brasil. Porém, o cliente poderá pagar em sua moeda local.
Com este cenário em mente, encontramos um desafio, que é expor o valor das mercadorias na moeda corrente do cliente.
Precisamos de uma solução tecnológica em que os clients (frontend, app, outras aplicações backend... dentre outros) possam consultar o valor em outras moedas.
Exemplo
Usando o produto acima como exemplo, ao executar uma requisição para o serviço, queremos obter como resultado todos os valores nas moedas que atendemos para o valor do produto:
Exemplo de interface de um serviço para conversão de R$ 529,00 para as demais moedas:
GET /api/convert/BRL/529
Resposta:
{
"USD": 98.23,
"EUR": 83.26,
"INR": 7318.93
}
Este é apenas um exemplo, fique à vontade para alterar detalhes conforme necessidades que você encontre / precise, mas não precisa ir muito além disso.
Pontos para levar em consideração:
Ainda estamos estudando atender a mais países que possuem suas próprias moedas, muito provavelmente precisaríamos incluir novas em um curto / médio prazo.
Seu código deverá estar pronto para ser colocado em produção, então use sua criatividade e adote todas as boas práticas e conceitos que você entende como importantes para uma aplicação "production ready".
Sua solução será avaliada com os critérios de organização, manutenibilidade, testabilidade, performance, monitoria e também pelo seu entendimento do problema.
Lembre-se que nunca trabalhamos sozinhos e por isso uma boa documentação é fundamental, além de ser o seu cartão de visitas para nós. Portanto, coloque nela tudo que achar que seria necessário para conhecer, usar e manter a sua aplicação.
Caso use alguma ferramenta como dependência (banco de dados, cache, etc...) explique como subir ou utilize um docker compose.
Valorizamos muito testes automatizados, seria importante para nós vermos como você trabalha com eles. =)
Linguagens aceitas
Hoje temos na nossa stack de tecnologia as seguintes linguagens:
Dê preferência para a linguagem que você tem mais experiência e caso não se sinta confortável em nenhuma delas, entre em contato com a pessoa recrutadora que está acompanhando você no processo.
Entrega
Ao terminar o teste, suba o seu código no GitHub, em um repositório privado e com o nome no seguinte formato: eng-gruposbf-backend-{linguagem}, exemplo: um teste em javascript seria eng-gruposbf-backend-javascript. Esse formato de nome é importante para o nosso recebimento do repositório e agilizar a sua correção.
Em seguida, depois de ter feito aquele último commit, adicione o nosso usuário @gruposbftechrecruiter como colaborador do repositório que nós já vamos receber o teste aqui! Caso tenha dúvidas sobre como adicionar usuários consulte https://git.io/Jz2oO.
Importante: não adicione o nosso usuário antes de ter terminado o teste! É nesse momento que iniciamos a correção e podemos nos confundir se o desafio ainda não estiver pronto!
Se possível, deixe o seu nome no perfil do Github, vai nos ajudar a te identificar :)
Conversor de moedas
Considere que, num cenário hipotético, estaremos expandindo os negócios e rompendo as fronteiras brasileiras. Em breve começaremos a vender os nossos produtos no exterior. Acontece que nós enviamos as mercadorias a partir dos nossos centros de distribuição que estão no Brasil. Porém, o cliente poderá pagar em sua moeda local.
Com este cenário em mente, encontramos um desafio, que é expor o valor das mercadorias na moeda corrente do cliente.
Precisamos de uma solução tecnológica em que os clients (frontend, app, outras aplicações backend... dentre outros) possam consultar o valor em outras moedas.
Exemplo
Usando o produto acima como exemplo, ao executar uma requisição para o serviço, queremos obter como resultado todos os valores nas moedas que atendemos para o valor do produto:
Exemplo de interface de um serviço para conversão de R$ 529,00 para as demais moedas:
Resposta:
Este é apenas um exemplo, fique à vontade para alterar detalhes conforme necessidades que você encontre / precise, mas não precisa ir muito além disso.
Pontos para levar em consideração:
Linguagens aceitas
Hoje temos na nossa stack de tecnologia as seguintes linguagens:
Dê preferência para a linguagem que você tem mais experiência e caso não se sinta confortável em nenhuma delas, entre em contato com a pessoa recrutadora que está acompanhando você no processo.
Entrega
Ao terminar o teste, suba o seu código no GitHub, em um repositório privado e com o nome no seguinte formato:
eng-gruposbf-backend-{linguagem}
, exemplo: um teste em javascript seriaeng-gruposbf-backend-javascript
. Esse formato de nome é importante para o nosso recebimento do repositório e agilizar a sua correção.Em seguida, depois de ter feito aquele último commit, adicione o nosso usuário
@gruposbftechrecruiter
como colaborador do repositório que nós já vamos receber o teste aqui! Caso tenha dúvidas sobre como adicionar usuários consulte https://git.io/Jz2oO.Importante: não adicione o nosso usuário antes de ter terminado o teste! É nesse momento que iniciamos a correção e podemos nos confundir se o desafio ainda não estiver pronto!
Se possível, deixe o seu nome no perfil do Github, vai nos ajudar a te identificar :)
Boa sorte!