Initial commit: BI Agentes platform
Independent dashboard for CambioReal agents with local SQLite auth and read-only RDS connection. Features login, per-agent transaction filtering, KPIs, charts (Chart.js), and detailed transaction table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
109
README.md
Normal file
109
README.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
node scripts/seed-agente.js --email agente@email.com --senha 123456 --agente 76 --nome "ValorFx"
|
||||
```
|
||||
|
||||
Listar:
|
||||
|
||||
```bash
|
||||
node scripts/seed-agente.js --list
|
||||
```
|
||||
|
||||
## Rodar
|
||||
|
||||
```bash
|
||||
node server.js
|
||||
# BI Agentes rodando: http://localhost:3080
|
||||
```
|
||||
|
||||
Para produção (intranet):
|
||||
|
||||
```bash
|
||||
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)
|
||||
Reference in New Issue
Block a user