Skip to content

Repository files navigation

💳 FinSmart Instituição de Pagamento S.A.

Plataforma Integrada de Core Banking, Internet Banking e Infraestrutura Relacional

🎓 Projeto Acadêmico Desenvolvido para a FIAP (Faculdade de Informática e Administração Paulista)

Ecossistema bancário completo de ponta a ponta: esteira de onboarding KYC em 6 etapas, liquidação SPB, PIX com governança BACEN Res. nº 142/2021, DDA eletrônico CIP, cartões 3D com antecipação de fatura a desconto CDI e modelos relacionais ACID em PostgreSQL.

FIAP Next.js 16 React 19 Prisma ORM PostgreSQL BACEN

ArquiteturaModelo Relacional de DadosRotas de APIComo Conectar o BancoMódulos do Sistema


🏛️ Visão Institucional & Origem Acadêmica

O FinSmart Instituição de Pagamento S.A. foi concebido e desenvolvido como projeto de excelência acadêmica na FIAP (Faculdade de Informática e Administração Paulista), integrando disciplinas avançadas de Engenharia de Software, Arquitetura de Microsserviços e Sistemas Financeiros, Segurança da Informação e Criptografia Bancária.

A instituição opera simulando todos os parâmetros regulatórios reais:

  • Partidas Dobradas (Double-Entry Ledger): Toda movimentação debita e credita contas atomicamente com garantia de conservação patrimonial.
  • Governança Regulatória do Banco Central (BACEN): Governança estrita da Resolução BCB nº 142/2021 com limites diurnos e noturnos diferenciados contra sequestros-relâmpago e fraudes.
  • Câmara Interbancária de Pagamentos (CIP / DDA): Captura eletrônica de boletos registrados no CPF do correntista antes do envio da fatura física.
  • Pronto para Produção: Banco de dados relacional com migrações PostgreSQL, ORM Prisma tipado, orquestração Docker Compose e resiliência com fallback automático.

🏗️ Arquitetura do Sistema

graph TD
    Client["💻 Client Frontend (Next.js 16 + React 19 + GSAP 3D)"]
    API["⚡ API RESTful (Next.js App Router /api/*)"]
    Services["⚙️ Service Layer (Regras de Negócio Bancárias)"]
    Security["🔒 Security & BACEN Engine (HMAC, SHA-256, Modulo 11, E2E)"]
    Repos["📦 Repository Layer (Data Access Object)"]
    Prisma["💎 Prisma ORM / Connection Pool"]
    Postgres[("🐘 PostgreSQL 16 Database (ACID, Foreign Keys, UUIDs)")]

    Client -->|HTTP / JSON / TLS 1.3| API
    API --> Services
    Services --> Security
    Services --> Repos
    Repos --> Prisma
    Prisma --> Postgres
Loading

🐘 Modelo Relacional Bancário (PostgreSQL)

O banco de dados relacional foi modelado em 12 entidades essenciais com integridade referencial estrita e índices de alta performance:

┌─────────────────┐       1:1       ┌──────────────────┐
│    usuarios     │─────────────────│    perfis_kyc    │
│  (id, cpf, ...) │                 │ (renda, pep, ...)│
└────────┬────────┘                 └──────────────────┘
         │ 1:N
┌────────┴────────┐
│     contas      │ (Agência 0001, Conta 560222-9, Saldo, Limite)
└────────┬────────┘
         ├── 1:N ─── caixinhas (Reserva CDI, Metas, Rendimento)
         ├── 1:N ─── cartoes (Físico, Virtual, Contactless, Limites)
         │              └── 1:N ── faturas
         │                            └── 1:N ── parcelas_fatura (Desconto Antecipação)
         ├── 1:N ─── transacoes (Livro Razão, E2E BACEN, Autenticação Digital)
         ├── 1:N ─── chaves_pix (DICT: CPF, Celular, E-mail, EVP)
         ├── 1:1 ─── limites_pix (Resolução BACEN nº 142 Diurno/Noturno)
         └── 1:N ─── boletos_dda (CIP / Títulos Eletrônicos Registrados)

Arquivos de Banco de Dados Disponíveis:

  • prisma/schema.prisma: Schema declarativo Prisma para PostgreSQL.
  • database/migrations/001_initial_banking_schema.sql: DDL nativo PostgreSQL com triggers de timestamp, índices B-Tree e constraints de integridade (saldo_disponivel >= 0.00).
  • database/seeds/001_seed_institucional.sql: Carga SQL inicial completa com correntista de homologação, faturas, DDA e transações.
  • prisma/seed.js: Script de seed automatizado via Node.js.

🚀 Como Conectar e Executar com Docker

1. Subir o Banco de Dados PostgreSQL 16

Na raiz do projeto, execute:

docker compose up -d

O container oficial postgres:16-alpine será iniciado na porta padrão 5432 com volume persistente e scripts de migração aplicados automaticamente.

2. Sincronizar o Schema com o Banco

npx prisma db push

3. Executar o Seed Institucional

npx prisma db seed

4. Iniciar a Aplicação

npm run dev

Acesse: http://localhost:3000

Note

O sistema foi projetado com resiliência de nível bancário: caso você inicie o frontend antes do banco de dados estar conectado, a camada de acesso ativa um modo de contingência gracioso, permitindo navegação completa enquanto a conexão PostgreSQL é restabelecida.


📡 Rotas de API RESTful

Método Endpoint Finalidade
GET /api/health Diagnóstico da infraestrutura, latência do banco e status SPB
POST /api/auth/login Autenticação de correntista e emissão de token de sessão
POST /api/auth/cadastro Esteira KYC completa e emissão de conta corrente
GET /api/conta/saldo Consulta atômica de saldos em conta corrente e caixinhas
POST /api/conta/caixinhas Aportes e resgates em caixinhas com rendimento CDI
POST /api/transferencias/pix Execução PIX com validação de PIN de 4 dígitos e ID E2E
GET/PUT /api/transferencias/limites Governança de limites da Resolução BACEN nº 142
GET/POST /api/pagamentos/dda Consulta de títulos na CIP e liquidação eletrônica
POST /api/pagamentos/boleto Validação de linha digitável (47/48 dígitos) e pagamento
GET/PUT /api/cartoes Consulta de faturas e atualização de preferências de segurança
POST /api/cartoes/antecipacao Simulação e quitação de parcelas com desconto CDI (10,5% a.a.)

Exemplo de Chamada de Liquidação PIX via cURL:

curl -X POST http://localhost:3000/api/transferencias/pix \
  -H "Content-Type: application/json" \
  -d '{
    "valor": 150.00,
    "chaveDestino": "contato@finsmart.com.br",
    "nomeDestinatario": "Maria Silva",
    "pinTransacional": "1234"
  }'

💎 Módulos do Ecossistema Bancário

1. Abertura de Conta Digital (KYC em 6 Etapas)

  • Validação de identificação cadastral e conferência de CPF.
  • Autocomplete de endereço via CEP.
  • Verificação regulatória de Pessoa Politicamente Exposta (PEP) nos termos da Circular BACEN nº 3.978/2020.
  • Prova de Vida Facial: Scanner biométrico de vivacidade (liveness) animado.
  • Definição de credenciais: Senha de acesso (6 dígitos com entropia) e Senha Transacional de 4 dígitos para operações no SPB.
  • Emissão instantânea de Agência 0001, conta corrente e concessão de limite de R$ 6.500,00.

2. Gestão de Conta Corrente e Caixinhas CDI

  • Caixinhas com Rendimento Diário: Reserva de Emergência (100% CDI), Meta Viagem (102% CDI) e Aposentadoria (105% CDI).
  • Exportação de Extrato OFX: Download de extrato em formato oficial .ofx para conciliação bancária.

3. Cartões de Crédito 3D & Antecipação com Desconto

  • Cartão físico e virtual com física de cursor (GSAP quickTo), brilho holográfico e rotação 3D para visualização de CVV.
  • Switches de segurança: contactless, compras online, internacional e bloqueio temporário.
  • Antecipação de Compras Parceladas: Desconto proporcional no valor presente calculado pela taxa CDI de 10,5% a.a.

4. Transferências PIX & Governança BACEN Res. 142

  • Transferência com autenticação por senha transacional de 4 dígitos.
  • Geração de código oficial End-to-End BACEN (E48291820...).
  • Separação entre Limite Diurno (06h–20h) e Limite Noturno Reduzido (20h–06h).

5. Central de Pagamentos & DDA CIP

  • Débito Direto Autorizado: Títulos e concessionárias emitidos no CPF do usuário disponíveis para quitação antes do envio do boleto físico.
  • Validação e parser de código de barras e emissão de Comprovante Oficial de Liquidação SPB.

🛠️ Tecnologias e Bibliotecas

  • Frontend & Core: Next.js 16 (App Router), React 19, Vanilla CSS Modules
  • Animações 3D & Física: GSAP 3.15, ScrollTrigger, Framer Motion
  • Visualização de Dados: Recharts 3.10
  • Persistência & ORM: Prisma ORM 5.22, PostgreSQL 16
  • Infraestrutura: Docker, Docker Compose
  • Ícones: React Icons (Feather Icons)

About

Plataforma de Core Banking com Internet Banking, PIX (BACEN), DDA/CIP e modelo relacional ACID | Next.js 16, React 19, Prisma, PostgreSQL | FIAP

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages