O LiraBank Ă© uma simulação de banco digital desenvolvida para demonstrar o domĂnio de uma stack moderna, focando em escalabilidade, segurança e integridade de dados.
- Atomicidade nas Transações: Garantia de que transferências (débito e crédito) ocorram de forma atômica ou falhem completamente, evitando inconsistências de saldo.
- End-to-End Type Safety: Uso rigoroso de TypeScript para consistĂŞncia entre banco de dados e interface.
- Validação de Camada: Esquemas de dados validados com Zod, blindando a API contra payloads malformados.
- Arquitetura em Camadas: Organização em Controllers, Services e Repositories para facilitar a testabilidade.
- Autenticação: Sistema de Login/Cadastro com JWT e armazenamento de senhas com
bcrypt. - Segurança de Rotas: Middleware de autenticação para proteção de endpoints privados.
- Core Bancário: Abertura automática de conta com saldo inicial zero vinculada ao usuário.
- Operações Financeiras: Implementação de Depósito, Saque e Transferências entre contas.
- Resiliência: Garantia de que falhas em transações não alterem saldos (Rollback).
- Observabilidade: Documentação interativa via Swagger.
- Infraestrutura: Orquestração total do ambiente via Docker Compose.
LiraBank/
├── backend/ # API RESTful (PostgreSQL + Prisma)
│ ├── prisma/ # Schema e Migrations
│ ├── src/
│ │ ├── controllers/# Validação de entrada e resposta HTTP
│ │ ├── services/ # Regras de negócio e lógica bancária
│ │ └── repositories/# Interface de comunicação com o banco
├── frontend/ # Interface SPA (React)
│ ├── src/
│ │ ├── components/ # UI Atoms & Molecules (shadcn/ui)
│ │ └── pages/ # Views e contextos de estado
- Backend:
cd backendnpm installcp .env.example .envnpx prisma migrate devnpm run dev- Frontend:
cd frontendnpm installnpm run dev- Isolamento: Um usuário jamais pode visualizar ou movimentar o saldo de terceiros.
- Validação de Saldo: Saques e transferĂŞncias sĂŁo impedidos caso o saldo disponĂvel seja insuficiente.
- Logs de Transação: Registro obrigatório de data, tipo e valor para cada movimentação.
Isaac Lira
Desenvolvedor Full Stack | TypeScript Enthusiast
