Puxpay é uma solução para gestão de usuários, carteiras digitais, transferências e depósitos. O sistema foi desenvolvido com Micronaut 4.7.3, utilizando práticas modernas de desenvolvimento, suporte a transações e integração com bancos de dados PostgreSQL.
- Cadastro de usuários com validação de CPF e e-mail exclusivos.
- Associação automática de uma carteira digital ao criar um usuário.
- Suporte a dois tipos de usuários: comum e lojista.
- Criação automática de carteira ao cadastrar um usuário.
- Consulta de saldos.
- Associação única entre carteira e usuário.
- Realização de depósitos em carteiras digitais.
- Atualização automática do saldo da carteira após depósito.
- Transferências entre carteiras.
- Validação de saldo antes de realizar a transferência.
- Registro das transferências com origem e destino das carteiras.
O projeto utiliza a abordagem Vertical Slice Architecture com CQRS (Command Query Responsibility Segregation), promovendo separação clara entre comandos e consultas.
- Notificações serão implementadas utilizando filas do RabbitMQ.
- Será adicionado suporte a cache com Redis para otimização de consultas frequentes.
- O sistema é modular, organizado por features, permitindo fácil migração para microserviços em caso de necessidade de escalar um bounded context específico.
- O projeto assume acoplamento com o framework para utilizar recursos como Lazy Load para acesso ao banco de dados.
- Será utilizado o plano Free do New Relic para monitoramento de desempenho e logs.
- Planejado suporte para subir o projeto e o banco de dados com Docker para facilitar o desenvolvimento e a integração contínua.
- O usuário informa os dados: nome, CPF, e-mail, senha e tipo de usuário.
- O sistema valida a únicidade do CPF e e-mail.
- O usuário é criado e uma carteira é associada automaticamente.
- O usuário informa o ID da carteira e o valor a ser depositado.
- O sistema localiza a carteira e atualiza o saldo.
- Um registro de depósito é criado para fins de auditoria.
- O usuário informa as carteiras de origem e destino, junto com o valor.
- O sistema valida se há saldo suficiente na carteira de origem.
- O saldo das carteiras é atualizado e a transferência é registrada.
- Java 21
- Micronaut 4.7.3
- PostgreSQL
- Maven
- Clone o repositório:
git clone <URL_DO_REPOSITORIO>
- Navegue até o diretório do projeto:
cd puxpay - Execute o projeto com o Maven:
./mvnw mn:run
Este projeto é licenciado sob a MIT License.

