O Sistema de Gerenciamento Bancário com Open Banking é uma API desenvolvida em Java com Spring Boot, que segue os padrões do Open Banking Brasil. A API permite o cadastro e autenticação de usuários, gerenciamento de contas bancárias e transferência entre contas. Além disso, conta com OAuth2, permitindo que aplicações externas acessem os dados bancários dos usuários, proporcionando integração com sistemas de controle financeiro e fintechs.
# 📌 Sistema Bancário com Open Banking
🚀 API RESTful desenvolvida em **Java + Spring Boot** que implementa funcionalidades bancárias e suporte a **Open Banking** com OAuth2.
## 🏆 Diferenciais
✅ **Open Banking**: Permite integração segura com outras aplicações financeiras.
✅ **Autenticação OAuth2**: Suporte para acessos autorizados por terceiros.
✅ **Gerenciamento de Contas**: Criar, listar e consultar saldo de contas bancárias.
✅ **Transferências Seguras**: Realizar transações entre contas.
✅ **Swagger Documentation**: API documentada com OpenAPI.
## 📌 Tecnologias Utilizadas
- Java 17+
- Spring Boot
- Spring Security + OAuth2
- MySQL
- Swagger (OpenAPI)
- JUnit para testes
## ⚡ Funcionalidades
### **1️⃣ Cadastro e Autenticação de Usuários**
- Registro de usuários
- Login com JWT
- Autenticação OAuth2 para acesso externo
### **2️⃣ Gerenciamento de Contas**
- Criar nova conta bancária
- Consultar saldo
### **3️⃣ Transferências Bancárias**
- Realizar transferência entre contas
- Histórico de transações
### **4️⃣ Open Banking API**
- Permite que **aplicações externas** acessem dados bancários com **OAuth2**
- Implementa **padrões do Open Banking Brasil**
## 🚀 Como Executar
1️⃣ **Clone o repositório**
```bash
git clone https://github.com/seuusuario/sistema-bancario-open-banking.git
cd sistema-bancario-open-banking2️⃣ Configure o MySQL
- Crie um banco de dados chamado
banco_db.
3️⃣ Configure as variáveis de ambiente
Crie um arquivo .env e adicione:
DB_URL=jdbc:mysql://localhost:3306/banco_db
DB_USER=root
DB_PASS=suasenha
JWT_SECRET=sua_chave_secreta
OAUTH2_CLIENT_ID=seu_client_id
OAUTH2_CLIENT_SECRET=sua_chave_oauth24️⃣ Execute o projeto
./mvnw spring-boot:run5️⃣ Acesse a documentação Swagger
http://localhost:8080/swagger-ui.html
- Registre uma aplicação cliente (exemplo: um app de finanças pessoais).
- Obtenha um token OAuth2 enviando um request para
/oauth/token. - Use o token para acessar dados bancários através da API.
Exemplo de requisição para obter um token OAuth2:
curl -X POST "http://localhost:8080/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=seu_client_id&client_secret=sua_chave_oauth2"These changes should give you a working Bank Management API with Open Banking features. The implementation includes:
User authentication and authorization with JWT Account management Transaction functionality (transfers by account, email, username) PDF statement generation Open Banking with OAuth2 for third-party integrations Swagger/OpenAPI documentation Error handling Security configuration
Desenvolvido por João Afonso Katombela. Conecte-se comigo no LinkedIn 🚀.