BI Agentes — CambioReal

Dashboard de transações para agentes CambioReal com autenticação local e dados ao vivo do RDS.

Arquitetura

┌─────────────────────────────────┐
│       BI Agentes (Express)      │
│                                 │
│  SQLite (auth)    Express/HTTP  │
│  agentes.db       :3080         │
│  email/senha      /login        │
│  agente_id        /dashboard    │
└───────────────────────┬─────────┘
                        │ READ-ONLY
                 ┌──────▼──────┐
                 │  cambio_db  │
                 │  (AWS RDS)  │
                 └─────────────┘
  • SQLite local — controle de agentes (email, senha bcrypt, agente_id). Sem dependência do RDS para autenticação.
  • MySQL RDS — somente leitura. Consulta br_transaction_to_usa (BRL→USD) e pagamento_br (USD→BRL) filtradas pelo agente_id da sessão.

Estrutura

bi-agentes/
├── server.js               ← Entry point (Express + sessions)
├── src/
│   ├── auth.js             ← Login/logout, bcrypt, middleware requireAuth
│   ├── db-local.js         ← SQLite (better-sqlite3) — tabela agentes
│   ├── db-rds.js           ← MySQL pool read-only (mysql2)
│   ├── queries.js          ← SQL parametrizado por agente_id
│   └── dashboard.js        ← Gerador HTML (KPIs, Chart.js, tabela)
├── public/
│   └── login.html          ← Tela de login
├── scripts/
│   └── seed-agente.js      ← CLI para cadastrar/listar agentes
├── data/
│   └── agentes.db          ← SQLite database (gerado automaticamente)
├── .env                    ← Credenciais RDS + SESSION_SECRET
└── .gitignore

Setup

npm install
cp .env.example .env   # editar com credenciais do RDS

Configuração (.env)

MYSQL_URL=<host-rds>
USER_MYSQL=<usuario-readonly>
PW_MYSQL=<senha>
SESSION_SECRET=<chave-secreta-sessao>
PORT=3080

Gerenciar Agentes

Cadastrar:

node scripts/seed-agente.js --email agente@email.com --senha 123456 --agente 76 --nome "ValorFx"

Listar:

node scripts/seed-agente.js --list

Rodar

node server.js
# BI Agentes rodando: http://localhost:3080

Para produção (intranet):

pm2 start server.js --name bi-agentes

Funcionalidades do Dashboard

  • Autenticação — cada agente loga com email/senha e vê apenas suas transações
  • KPIs — transações, volume BRL/USD, taxa média, spread, IOF, ticket médio, clientes ativos
  • Gráficos — volume por período (BRL+USD dual axis), volume por cliente (top 10), taxa cobrada vs PTAX
  • Tabela — todas as transações com data/hora, cliente, valores, IOF, taxas, spread, status
  • Filtros — período (de/até), granulação (dia/mês/ano), fluxo (BRL→USD / USD→BRL), cliente
  • Dados ao vivo — cada refresh consulta o RDS em tempo real
  • Dois fluxos — BRL→USD (br_transaction_to_usa) e USD→BRL (pagamento_br)

Stack

  • Node.js + Express
  • express-session (sessões em memória)
  • better-sqlite3 (auth local)
  • mysql2 (RDS read-only)
  • bcrypt (hash de senhas)
  • Chart.js 4.x (gráficos client-side via CDN)
  • Google Fonts Inter (tipografia via CDN)
Description
No description provided
Readme 3 MiB
Languages
Python 62.7%
JavaScript 31.8%
HTML 4.1%
Groovy 1.1%
CSS 0.2%