https://github.com/katumbela/bankmanagementapi
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 apps externas acessem os dados bancários
https://github.com/katumbela/bankmanagementapi
api api-rest java spring spring-boot springboot
Last synced: about 2 months ago
JSON representation
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 apps externas acessem os dados bancários
- Host: GitHub
- URL: https://github.com/katumbela/bankmanagementapi
- Owner: Katumbela
- Created: 2025-03-24T21:29:30.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-02T17:39:45.000Z (about 1 year ago)
- Last Synced: 2025-08-01T09:13:49.382Z (11 months ago)
- Topics: api, api-rest, java, spring, spring-boot, springboot
- Language: Java
- Homepage:
- Size: 57.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### **Descrição do Projeto**
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.
---
```md
# 📌 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-banking
```
2️⃣ **Configure o MySQL**
- Crie um banco de dados chamado `banco_db`.
3️⃣ **Configure as variáveis de ambiente**
Crie um arquivo `.env` e adicione:
```env
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_oauth2
```
4️⃣ **Execute o projeto**
```bash
./mvnw spring-boot:run
```
5️⃣ **Acesse a documentação Swagger**
[http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)
---
## 🏦 Open Banking - Como Usar OAuth2
1. **Registre uma aplicação cliente** (exemplo: um app de finanças pessoais).
2. **Obtenha um token OAuth2** enviando um request para `/oauth/token`.
3. **Use o token para acessar dados bancários** através da API.
Exemplo de requisição para obter um token OAuth2:
```bash
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"
```
---
## Features
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
## 👨💻 Autor
Desenvolvido por **João Afonso Katombela**. Conecte-se comigo no [LinkedIn](https://www.linkedin.com/in/joao-afonso-katumbela) 🚀.
```