Um sistema bancário moderno e completo, evoluído de um script CLI para uma arquitetura distribuída baseada em microsserviços, containerização e design system profissional.
- Python 3.12 com FastAPI
- Strawberry GraphQL (API tipada e moderna)
- SQLAlchemy (ORM para persistência de dados)
- Auth JWT + Passlib (Segurança e Criptografia)
- Docker (Containerização)
- Angular 18+ (Standalone Components & Signals)
- Angular Material 3 (Design System customizado)
- Apollo Client (Consumo de GraphQL com Cache)
- Ng2-Charts (Visualização de dados financeiros)
- Guards & Interceptors (Segurança de Rotas)
- 🔐 Autenticação Segura: Login com JWT e proteção de rotas.
- 💸 Operações Financeiras: Depósitos e saques com validação de saldo e limites diários.
- 🔄 Transferências (PIX): Transações atômicas entre contas (Tudo ou Nada).
- 📊 Dashboard Interativo: KPIs em tempo real, gráficos de fluxo de caixa e gestão visual.
- 📑 Extrato Inteligente: Histórico detalhado de movimentações.
- ⚙️ Configurações: Ajuste dinâmico de limites de transação por usuário.
- 🐳 Infraestrutura: Ambiente de desenvolvimento 100% Dockerizado.
Você não precisa instalar Python ou Node.js localmente se tiver o Docker.
- Docker
- Docker Compose
- Clone o repositório:
git clone https://github.com/alessandrolsdev/banco-new.git
cd banco-new- Suba os containers (modo desenvolvimento):
docker-compose up --build- Acesse a aplicação:
- Frontend (App):
http://localhost:4200 - Backend (GraphiQL / Playground):
http://localhost:8000/graphql
Para popular o banco com dados fictícios (ex.: Elon Musk, Jeff Bezos, usuários de teste):
- Acesse o Dashboard.
- No menu lateral, clique em Seed DB.
- Confirme a operação.
Observação: se preferir rodar o seed via container, adicione um comando/entrypoint no
docker-composepara executar o script de seed automaticamente ou rode uma task dentro do container backend:
# exemplo (ajuste conforme seu projeto)
docker-compose exec backend python scripts/seed_db.pyO projeto segue uma arquitetura separada (Monorepo):
/
├── backend/ # API Python (FastAPI + Strawberry)
│ ├── main.py # Entrypoint
│ ├── schema.py # Lógica GraphQL
│ ├── models.py # Tabelas do Banco
│ └── auth.py # Segurança
│
├── frontend/ # SPA Angular
│ ├── src/app/components # Telas e Modais
│ ├── src/app/guards # Proteção de Rotas
│ └── src/assets # Imagens e Estilos
│
└── docker-compose.yml # Orquestração
- Use
docker-compose.override.ymlpara ajustes locais (por exemplo, volumes com código fonte montado). - Para desenvolvimento frontend, ative o live-reload do Angular dentro do container ou rode
ng servelocalmente apontando para a API viaproxy.conf.json. - Garanta que variáveis sensíveis (JWT_SECRET, DATABASE_URL) fiquem em
.enve não sejam comitadas.
- Revisar políticas de segurança e adicionar rate-limiting
- Ativar HTTPS e certificados (nginx / Traefik)
- Revisar limites e regras de negócio (limites diários, antifraude)
- Backups e migrações automatizadas
- Tests unitários e E2E
Contribuições são bem-vindas! Abra um issue ou envie um pull request com melhorias.
Made with 💜 by alessandrolsdev

