1321b949e4f6542b9428ad5565a479cf9420d382
- Cria src/ui-template.js com header, footer e estilos compartilhados - Atualiza admin-home.js e admin-panel.js para usar template - Atualiza dashboard.js com logo e cores CambioReal (#7600be) - Atualiza login.html com novo branding BI-CCC - Adiciona public/logo.png (CambioReal original) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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) epagamento_br(USD→BRL) filtradas peloagente_idda 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
Languages
Python
62.7%
JavaScript
31.8%
HTML
4.1%
Groovy
1.1%
CSS
0.2%