Teste Dev Backend Jr

Vamos criar uma carteira digital, com as seguintes funcionalidades:

  • cash-in, que é a entrada de dinheiro na conta.
  • cash-out, que é a retirada do saldo (ou parte dele).
  • transferências, que é quando um usuário usa seu saldo para transferir para outro usuário.

Para o cadastro do usuário (abertura da conta), os seguintes campos são obrigatórios:

  • nome completo
  • cpf
  • data de nascimento
  • senha

Para o cadastro, temos as seguintes regras:

  • o nome completo é composto por Nome e Sobrenome, podendo ter nome do meio.
  • uma pessoa não pode ter mais de uma conta.
  • a legislação, atualmente não nos permite ter clientes com menos de 18 anos, mas isto está para mudar em breve.

Para as movimentações, temos a seguintes regras:

  • no primeiro cash-in, daremos um bônus de 10% do valor recebido a título de boas vindas.
  • em cash-out, cobramos uma tarifa de 1%.
  • as transferências não geram bonificação nem tarifas.
  • a conta jamais poderá ficar negativa.

Dado tudo isso, o seu trabalho aqui é criar um conjuto de APIs que forneçam:

  • cadastro da conta.
  • cash-in de valores.
  • transferência entre contas.
  • cash-out.
  • consulta do saldo disponível.
  • listagem de transações por período.

O que iremos avaliar:

  • Se a sua solução atende tudo que foi solicitado.
  • A organização do seu projeto, e a forma que seu código foi escrito.

Itens que nos deixam com mais vontade de ter você no nosso time:

  • Você se preocupou com performance da aplicação.
  • O código é fácil de dar manutenção.
  • Recebemos testes e esses funcionam.
  • Você escreveu um pequeno manual do que precisamos fazer para rodar a aplicação.

Como queremos receber isso?
Link para um repositório online (github é uma ótima opção).