Plataforma bancária moderna construída com microserviços em TypeScript, demonstrando padrões arquiteturais e boas práticas de desenvolvimento backend.
Implementação de microserviços financeiros utilizando tecnologias modernas para operações bancárias.
- Backend: NestJS + TypeScript
- Banco de Dados: PostgreSQL com Prisma ORM
- Containerização: Docker + Docker Compose
- Documentação: OpenAPI/Swagger
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Users API │ │ Transactions │ │ PostgreSQL │
│ (Porta 3000) │────│ API │────│ (Usuarios) │
│ │ │ (Porta 3001) │ │ Porta 5432 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ ┌─────────────────┐ ┌─────────────────┐
└──────────────│ Docker Compose │────│ PostgreSQL │
│ Orquestração │ │ (Transações) │
└─────────────────┘ │ Porta 5433 │
└─────────────────┘
Users Service: http://localhost:3000/users
Transactions Service: http://localhost:3001/v1/ (múltiplos endpoints)
- ✅ Gerenciamento de Usuários
POST /users- Criação de usuários com validaçãoGET /users- Listagem paginada de usuáriosGET /users/:id- Busca usuário por ID
Gestão de Contas:
- ✅
GET /v1/accounts- Listar contas do usuário - ✅
POST /v1/accounts- Criar nova conta - ✅
GET /v1/accounts/:accountId- Dados da conta - ✅
GET /v1/accounts/:accountId/balance- Consulta de saldo - ✅
GET /v1/accounts/:accountId/bank-statement- Extrato da conta - ✅
PATCH /v1/accounts/:accountId/block- Bloquear conta - ✅
PATCH /v1/accounts/:accountId/unlock- Desbloquear conta
Operações Financeiras:
- ✅
GET /v1/transactions- Histórico de transações - ✅
GET /v1/transactions/:authenticationId- Comprovante específico - ✅
POST /v1/transactions/deposit- Operações de depósito - ✅
POST /v1/transactions/withdraw- Saques com validação - ✅
POST /v1/transactions/purchase- Compras - ✅
POST /v1/transactions/transfer-intra-account- Transferências - ✅
PATCH /v1/transactions/:authenticationId/cancel- Cancelamento - ✅
PATCH /v1/transactions/:authenticationId/rollback- Estorno
Configurações do Sistema:
- ✅
GET/POST /v1/accounts-types- Tipos de conta (corrente, vale refeição, pagamento) - ✅
GET/POST /v1/transactions-types- Tipos de transação - ✅
GET/POST /v1/transactions-status- Status de transação - ✅
GET/POST /v1/transactions-types-moviment- Tipos de movimento
- ✅ CronJob de Confirmação: Execução automática a cada 5 minutos (6:00-18:00, Seg-Sex)
- ✅ Headers Customizados:
user-id,origin-account-idpara autorização - ✅ BigInt Support: Serialização customizada para IDs grandes
smart-bank-2023/
├── users/ # Serviço de gestão de usuários
├── transactions/ # Serviço de processamento de transações
├── docker-compose.yml
└── databases/ # Esquemas PostgreSQL
# Clonar e configurar
git clone https://github.com/Romulosanttos/smart-bank-2023.git
cd smart-bank-2023
# Inicializar todos os serviços
docker-compose up -d
# Acessar documentação da API
open http://localhost:3000/docs # Users API
open http://localhost:3001/docs # Transactions API- Serviço Users: Gestão de usuários com relacionamento de contas
- Serviço Transactions: Operações financeiras com conformidade ACID
- Comunicação Inter-serviços: APIs RESTful com validação
Este projeto demonstra implementação prática de:
- 🏛️ Microserviços: Separação adequada de responsabilidades por domínio
- 🔒 Domínio Financeiro: Padrões bancários e conformidade ACID
- 🧪 TypeScript: Type safety em lógica de negócio complexa
- 🐳 DevOps: Orquestração Docker para desenvolvimento
- 📚 Documentação: OpenAPI/Swagger para colaboração