Home - bbarrosomoreira/digital-bank-api GitHub Wiki

📘 Wiki - Banco Digital API (PT-BR | EN)

Esta wiki está disponível em português e inglês.
This wiki is available in Portuguese and English.


🇧🇷 Português

💳 Banco Digital - Projeto API Java Spring Boot

Este projeto simula um banco digital, oferecendo funcionalidades completas como abertura de contas, emissão de cartões, contratação de seguros, realização de transferências, PIX e muito mais. Tudo foi construído com Java + Spring Boot, utilizando JWT para autenticação e um banco de dados H2 com JPA para persistência.

👥 Perfis de Acesso (Roles)

  • ADMIN: Representa a equipe interna do banco, com acesso completo ao sistema.
  • CLIENTE: Representa o cliente do banco, com acesso restrito às suas informações e ações permitidas.

📌 Funcionalidades Gerais

  • Autenticação com JWT (login e registro com geração automática de token).
  • Cadastro e gerenciamento de clientes.
  • Abertura e manutenção de contas (Corrente, Poupança e Internacional).
  • Emissão e controle de cartões (Débito e Crédito).
  • Contratação e gerenciamento de seguros (Fraude e Viagem).
  • Integrações com APIs externas (Receita Federal - simulada, Conversor de Moedas e BrasilAPI para CEP).
  • Políticas de Taxas por categoria de cliente.
  • Role-based access control para todos os endpoints.

🔧 Tecnologias Utilizadas

  • Java 17+
  • Spring Boot
  • Maven
  • JPA + H2 Database
  • JWT (JSON Web Token)
  • APIs externas (Receita Federal - simulada, Conversão de Moedas e BrasilAPI para CEP)

Para detalhes específicos, acesse as páginas dos controllers ao lado.


🇺🇸 English

💳 Digital Bank - Java Spring Boot API Project

This project simulates a digital bank, offering complete features such as account opening, card issuance, insurance contracting, money transfers, PIX transactions, and more. It was entirely built with Java + Spring Boot, using JWT for authentication and an H2 in-memory database with JPA for persistence.

👥 Access Roles

  • ADMIN: Represents the bank's internal team, with full system access.
  • CLIENT: Represents the bank's customer, with limited access to their own information and allowed actions.

📌 Main Features

  • JWT authentication (login and signup with automatic token generation).
  • Customer registration and management.
  • Account creation and management (Checking, Savings, and International).
  • Card issuance and management (Debit and Credit).
  • Insurance contracting and management (Fraud and Travel).
  • Integrations with external APIs (simulated Federal Revenue, Currency Converter, and BrazilAPI for ZIP codes).
  • Fee policies based on customer categories.
  • Role-based access control for all endpoints.

🔧 Technologies Used

  • Java 17+
  • Spring Boot
  • Maven
  • JPA + H2 Database
  • JWT (JSON Web Token)
  • External APIs (simulated Federal Revenue, Currency Converter, and BrazilAPI for ZIP codes)

For specific details, check out the individual controller pages.