Skip to content

Repository files navigation

Puxpay - Plataforma de Pagamentos

Progresso

Loading 30%

Descrição

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.


Diagrama

Diagrama do Projeto


API

swagger


Features

Usuários

  • 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.

Carteiras Digitais

  • Criação automática de carteira ao cadastrar um usuário.
  • Consulta de saldos.
  • Associação única entre carteira e usuário.

Depósitos

  • Realização de depósitos em carteiras digitais.
  • Atualização automática do saldo da carteira após depósito.

Transferências

  • Transferências entre carteiras.
  • Validação de saldo antes de realizar a transferência.
  • Registro das transferências com origem e destino das carteiras.

Arquitetura e Planejamento Futuro

Arquitetura Vertical Slice com CQRS

O projeto utiliza a abordagem Vertical Slice Architecture com CQRS (Command Query Responsibility Segregation), promovendo separação clara entre comandos e consultas.

Notificações e Filas

  • Notificações serão implementadas utilizando filas do RabbitMQ.

Cache com Redis

  • Será adicionado suporte a cache com Redis para otimização de consultas frequentes.

Modularidade e Bounded Context

  • 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.

Monitoramento com New Relic

  • Será utilizado o plano Free do New Relic para monitoramento de desempenho e logs.

Docker para Infraestrutura

  • Planejado suporte para subir o projeto e o banco de dados com Docker para facilitar o desenvolvimento e a integração contínua.

Casos de Uso

Cadastro de Usuário

  1. O usuário informa os dados: nome, CPF, e-mail, senha e tipo de usuário.
  2. O sistema valida a únicidade do CPF e e-mail.
  3. O usuário é criado e uma carteira é associada automaticamente.

Realizar Depósito

  1. O usuário informa o ID da carteira e o valor a ser depositado.
  2. O sistema localiza a carteira e atualiza o saldo.
  3. Um registro de depósito é criado para fins de auditoria.

Transferência de Valores

  1. O usuário informa as carteiras de origem e destino, junto com o valor.
  2. O sistema valida se há saldo suficiente na carteira de origem.
  3. O saldo das carteiras é atualizado e a transferência é registrada.

Documentação do Projeto

Referências do Micronaut

Plugins e Recursos

Validação

OpenAPI e Swagger

Banco de Dados e Migração

Serialização

Testes


Requisitos do Projeto

  • Java 21
  • Micronaut 4.7.3
  • PostgreSQL
  • Maven

Como Executar

  1. Clone o repositório:
    git clone <URL_DO_REPOSITORIO>
  2. Navegue até o diretório do projeto:
    cd puxpay
  3. Execute o projeto com o Maven:
    ./mvnw mn:run

Licença

Este projeto é licenciado sob a MIT License.

About

desafio picpay freecode

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages