Skip to content

Proposta de solução para o desafio Back-End da empresa PicPay

Notifications You must be signed in to change notification settings

joao-pedro-angelo/PicPaySimplificado

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio - PicPay Simplificado

Link do desafio: PicPay Desafio Backend

Este projeto é uma solução para o desafio proposto pelo PicPay para desenvolvimento de uma aplicação que simplifica transferências de dinheiro entre usuários comuns e lojistas. Porém, esta solução não será enviada para avaliação. Caso fosse, não poderia mencionar o nome do banco, pois está nas regras do desafio (link acima).


Requisitos:

  • Dois tipos de usuários: Lojista e Comum, ambos com carteira de dinheiro para realizar transferências.
  • Para ambos os tipos de usuários, são necessários nome completo, CPF, email e senha.
  • CPF e email devem ser únicos no sistema.
  • Usuários podem transferir dinheiro para lojistas e outros usuários comuns.
  • Lojistas apenas recebem transferências, não enviam dinheiro.
  • Validação do saldo do usuário antes da transferência.
  • Consulta a um serviço autorizador externo antes de realizar transferência.
  • As transferências devem ser transações reversíveis em caso de inconsistência.
  • Envio de notificação por um serviço de terceiro, mesmo que esteja indisponível, durante o recebimento de transferência.

Boas práticas:

  • Documentação.
  • Código limpo e organizado.
  • Conhecimento de padrões.
  • Consistência e capacidade de argumentação das escolhas.
  • Modelagem de dados.
  • Manutenibilidade do código.
  • Tratamento de erros.
  • Desacoplamento de componentes.
  • A avaliação será focada apenas na API Restful, excluindo o frontend, se houver.
  • Não é necessário implementar autenticação.

Tecnologias Utilizadas (por João Pedro):

  • Java 21: Linguagem de programação amplamente utilizada.
  • Maven: Gerenciador de dependências para projetos Java.
  • Spring Web: Facilita o desenvolvimento de APIs Restful.
  • Spring Data JPA: Facilita a persistência dos dados.
  • Lombok: Ajuda na geração de código.
  • DevTools: Funcionalidades como reload automático.
  • H2: Banco de dados em memória para simplificar o desenvolvimento, sem a necessidade de migrations.

Modelagem

uml.png

About

Proposta de solução para o desafio Back-End da empresa PicPay

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages