Projeto realizado como teste prático para a vaga de desenvolvedor backend pleno, na PagueVeloz. A Carteira Digital é um serviço de pagamento que disponibiliza uma API para a criação de um usuário/conta, a realização de cash-ins, cash-outs e transferências e a consulta de extrato em um determinado período ou o saldo da conta.
O projeto consiste em dois módulos principais, a API do Provedor de Autenticação e a API da Carteira Digital.
No Provedor de Autenticação é onde são realizadas as requisições para a criação de usuário (e também conta, uma vez que ao criar um usuário uma nova conta é vinculada a ele) e autenticação para a geração do token no padrão JWT.
A API da Carteira Digital disponibiliza os demais endpoints para realização de operações financeiras, conforme citado no início. É importante citar que apenas será possível utilizá-la caso o usuário possua um token de autenticação, portanto, antes de utilizá-la é necessário realizar o cadastro e se autenticar utilizando o Provedor de Autenticação. Outro ponto, é que como a autenticação é realizada por um token JWT, é necessário adicionar a palavra "Bearer" antes dele ao informá-lo na aba de autenticação.
Para subir os serviços, basta executar o comando "docker-compose up" na pasta raiz da solução. Ele irá realizar todas as inicializações necessárias (talvez seja necessário esperar por alguns minutos até que seja realizado o download de todas as imagens e os serviços fiquem prontos).
A documentação das APIs foi realizada utilizando o Swagger e, após iniciar os serviços, estará disponível nas URIs
-http://localhost:6001
-http://localhost:5001
para o Provedor de Autenticação e a API da Carteira Digital, respectivamente. Ao realizar as requests, informe 1.0 como a versão a ser utilizada.
A respeito das operações, elas apenas serão efetivadas quando algum consumidor realizar o processamento. Para acompanhar o processamento das mensagens, é necessário consultar o extrato da conta, onde estará disponível o status da operação e a mensagem de erro caso ocorra algum problema durante a efetivação.
Caso ocorra algum erro não tratado no Provedor de Autenticação ou na API da Carteira Digital, será gerado um registro na tabela Logs.