Skip to content

Raybank é um sistema bancário digital desenvolvido para oferecer uma experiência completa de transações de sistemas financeiros reais.

License

Notifications You must be signed in to change notification settings

Rayllanderson/raybank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

772 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏦 Raybank

NPM

Sobre o projeto

Raybank é um sistema bancário digital desenvolvido para oferecer uma experiência completa de transações de sistemas financeiros reais. Raybank oferece uma ampla gama de funcionalidades, como transferências via Pix, cartões de débito e crédito, emissão e pagamento de boletos, depósitos e pagamentos diversos, além de uma interface de usuário intuitiva e responsiva.

O que você pode fazer com o Raybank?

Sistema Completo de Pix

  • Crie, gerencie e exclua suas chaves Pix com facilidade.
  • Faça transferências por QR Code, chave ou conta, sem complicações.
  • Configure limites para manter o controle total das transações.
  • Reembolse com apenas um clique, graças ao suporte completo para devoluções.

💳 Cartão de Débito e Crédito

  • Parcelamentos com faturas reais, prazos, atrasos e tudo o que o mercado exige.
  • Pague suas faturas com facilidade gerando boletos ou com saldo da conta.
  • Experiência de compras virtuais integrada via API.
  • Controle total de limites, com ajustes automáticos conforme uso e pagamento.

💰 Boletos Bancários

  • Crie e pague boletos em qualquer momento, para qualquer usuário.
  • Realize depósitos utilizando boletos com simplicidade.
  • Gerencie tudo por status e acompanhe os vencimentos como em bancos reais.

💸 Soluções Financeiras Completas

  • Deposite como preferir: QR Code, boleto ou diretamente na conta.
  • Pague faturas, QR Code, boletos e mais com total controle
  • Realize transferências usando QR Code, chave Pix ou número da conta.
  • Cada pagamento, transferência e movimentação são registrados em extratos detalhados.

🔐 Segurança em Primeiro Lugar

  • Proteção de dados garantida com OAuth2, Keycloak e Cognito para uma experiência confiável.

Telas

img img2

📱 Versão Mobile

O design deste projeto foi pensado para oferecer uma ótima experiência em qualquer dispositivo, seja no computador ou no celular:

Fotoram io (2) Fotoram io (3)

📹 Demonstração

Preview.mp4

Por Trás do Raybank

Raybank combina um backend sólido em Java com Spring Boot e PostgreSQL, com um frontend moderno utilizando React e Next.js. A infraestrutura é totalmente automatizada com Terraform e AWS, proporcionando escalabilidade e robustez. A mensageria é feita com SQS, e o processamento de imagens e thumbnails é otimizado com Python.

⚙️ Tecnologias Utilizadas

Backend

  • Java com Spring.
  • Banco de dados PostgreSQL.
  • Mensageria com AWS SQS (opção para Kafka).

🌐 Frontend

  • TypeScript
  • React com Next.js 14.
  • TailwindCSS para estilização rápida e flexível.

🏗️ Infraestrutura

  • AWS (S3, Lambda, SQS, e mais).
  • Terraform para automação de infraestrutura.
  • Docker e Docker Compose para containerização.
  • LocalStack para emulação local de serviços AWS.

🔒 Autenticação e Autorização

  • OAuth2 com Keycloak ou Cognito para controle de acesso seguro.
  • Webhook para eventos de criação de usuário utilizando SQS para gerenciar eventos, com o Cognito disparando um trigger de "Post Confirmation Lambda" para escutar registros de usuários.

🖼️ Processamento de Imagens

  • Python para geração de thumbnails.
  • Armazenamento em AWS S3.

📡 Arquitetura e Infraestrutura

A arquitetura do RayBank é projetada para alta escalabilidade, com utilização de AWS e mensageria.
Veja abaixo a arquitetura completa:

Utilizando Cognito

cognit2o

Utilizando Keycloak

infra drawio2


🚀 Como executar o projeto

Pré-requisitos

  • Docker: Certifique-se de ter o Docker instalado em sua máquina.
  • Docker Compose: Também é necessário ter o Docker Compose instalado para gerenciar múltiplos containers.

Passos para executar o projeto

  1. Clone o repositório

    No terminal, clone o repositório com o seguinte comando:

    git clone https://github.com/Rayllanderson/raybank.git
  2. Acesse a pasta da infraestrutura: Navegue até a pasta onde o arquivo docker-compose.yml está localizado:

    cd raybank/v2/infra
  3. Suba os containers Docker Execute o comando abaixo para subir os containers. Esse processo pode levar algum tempo, dependendo da configuração da sua máquina:

    docker-compose up
  4. Acesse o Frontend Após o Docker concluir a inicialização dos containers, o frontend estará disponível na seguinte URL: http://localhost:3000

Observação: O tempo de inicialização pode variar. Caso seja a primeira vez que os containers estão sendo executados, pode demorar alguns minutos, dependendo dos recursos da sua máquina.


Telas da Versão 1.0 (Jun. 2021)

❓ Como contribuir para o projeto

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit contando o que você fez: git commit -m "feature: My new feature"
  4. Envie as suas alterações: git push origin my-feature

Caso tenha alguma dúvida confira este guia de como contribuir no GitHub

📝 Licença

Este projeto esta sobe a licença MIT.

Rayllanderson Gonçalves Rodrigues

https://www.linkedin.com/in/rayllanderson/

About

Raybank é um sistema bancário digital desenvolvido para oferecer uma experiência completa de transações de sistemas financeiros reais.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published