Este projeto é um sistema de transferência de dinheiro, que permite aos usuários transferirem valores entre carteiras. Ele implementa funcionalidades de autenticação, autorização de transações e notificação.
- Criação de Usuário
- Registro de novos usuários, incluindo comerciantes e usuários comuns.
{ "fullName": "Exemplo de Usuário", "cpf": "12345678900", "email": "exemplo@dominio.com", "password": "Senha123", "userType": "COMMON" }
- Depósito em Carteira
- Permite que os usuários depositem um valor em suas carteiras.
{ "amount": 100.00 }
- Transferência entre Carteiras
- Transferência de valores entre usuários, com verificação de saldo e autorização externa.
{ "payerId": 1, "payeeId": 2, "amount": 100.00 }
- Comunicação com Serviço Externo
- Integração com um serviço externo para autorização de transações financeiras.
- Notificação de Transações
- Envio de notificações aos usuários após a conclusão de transferências.
- Documentação da API
- Link para acessar a documentação na máquina -> http://localhost:8080/
- Java 17 ou superior
- Maven 3.2.5 ou superior
- Docker
- Clone o repositório na sua máquina
git clone https://github.com/lucasmoraist/bank-simplified.git
- Acesse o diretório do projeto
cd bank-simplified
- Suba o container do banco de dados com Docker Compose
docker-compose up -d
- Utilize uma ferramenta como Postman ou Insomnia para testar os endpoints da API.
- Importe o arquivo de requisições disponível no diretório ./collection para facilitar os testes.
- É possível acessar a documentação da API na máquina local através do link http://localhost:8080/ e testar as requisições diretamente no Swagger.