# 📑 ÍNDICE - Arquivos da Interface Web

> Guia completo de todos os arquivos criados para a interface web do robô de balanceamento

## 🎯 Começar Aqui

1. **Leia primeiro**: [README_WEB.md](#readme_webmd) (5 min)
2. **Acesse**: http://localhost/projetos/balanceamento/log_balanceamento.php
3. **Se precisar help**: Execute `python utilis_web_balanceamento.py diagnosticar`

---

## 📂 Estrutura de Arquivos

```
balanceamento/
├── 📄 log_balanceamento.php           ← Interface web principal (comece aqui!)
├── 📄 setup_db_balanceamento.php      ← Setup do banco MySQL
├── 📄 sincronizar_db_balanceamento.py ← Sync robô → banco
├── 📄 extensoes_web.php               ← Exemplos de extensões
├── 📄 utilis_web_balanceamento.py     ← Ferramentas de teste
├── 📄 INDICE_WEB.md                   ← Este arquivo
├── 📄 INTERFACE_WEB.md                ← Documentação detalhada
├── 📄 README_WEB.md                   ← README rápido
├── 📄 php_error_balanceamento.log     ← Log de erros PHP (auto-criado)
│
└── robobalanceamento/                 ← Ver INDICE_ROBOBALANCEAMENTO.md
    ├── robo_balanceamento.py
    ├── interface_graficabalanceamento.py
    ├── validar_balanceamento.py
    ├── exemplos_portofolios.py
    ├── configuracoes_balanceamento.json
    ├── portfolio_estado.json           ← Estado persistente
    ├── log_balanceamento.log           ← Log do robô
    └── backups/                        ← Backups automáticos
```

---

## 📋 Descrição Detalhada dos Arquivos

### 🌐 **log_balanceamento.php**
**Tipo**: Interface web PHP  
**Tamanho**: ~800 linhas  
**Propósito**: Dashboard principal para monitoramento do robô em tempo real

**O que faz:**
- Lê dados do `portfolio_estado.json`
- Parse do `log_balanceamento.log`
- Exibe status do robô (ativo/inativo)
- Mostra valor do portfólio e ganhos
- Tabela de saldos por moeda
- Histórico de trades
- Dashboard responsivo (mobile-friendly)

**Como usar:**
```
http://localhost/projetos/balanceamento/log_balanceamento.php
```

**Características:**
- ✅ Tema escuro moderno
- ✅ Cards interativos
- ✅ Barras de progresso visuais
- ✅ Sem dependências externas (puro PHP + HTML + CSS)
- ✅ Atualização manual (F5) ou auto-refresh (meta tag)

**Tecnologia**: PHP 7.4+, HTML5, CSS3 (Flexbox/Grid)

---

### 🗄️ **setup_db_balanceamento.php**
**Tipo**: Script de setup PHP  
**Tamanho**: ~200 linhas  
**Propósito**: Criar banco de dados MySQL com tabelas para análise histórica

**O que faz:**
- Conecta ao MySQL
- Cria banco `balanceamento_db`
- Cria 6 tabelas com índices

**Tabelas criadas:**
1. `portfolio_snapshots` - Snapshots diários
2. `rebalancing_transactions` - Histórico de trades
3. `coin_performance` - Performance por moeda
4. `daily_strategy_stats` - Estatísticas diárias
5. `portfolio_events` - Eventos do sistema
6. `configuration_history` - Histórico de mudanças

**Como usar:**
```
http://localhost/projetos/balanceamento/setup_db_balanceamento.php
```

**Requisitos:**
- MySQL 5.7+ (XAMPP)
- PhpMyAdmin (opcional, mas útil)

**Resultado:**
```
✓ Banco de dados criado
✓ 6 tabelas criadas
✓ Pronto para sincronização
```

---

### 🐍 **sincronizar_db_balanceamento.py**
**Tipo**: Script Python standalone  
**Tamanho**: ~400 linhas  
**Propósito**: Sincronizar dados do robô para o banco de dados MySQL

**O que faz:**
- Lê `portfolio_estado.json`
- Parse de `log_balanceamento.log`
- Insere dados em MySQL (sem duplicatas)
- Registra eventos de sincronização

**Execução manual:**
```bash
cd projetos/balanceamento
python sincronizar_db_balanceamento.py
```

**Execução automática (Cron):**
```bash
# Rodaria cada hora (Linux/Mac)
0 * * * * cd /caminho/para/balanceamento && python sincronizar_db_balanceamento.py
```

**Resultado:**
```
✓ Portfolio snapshot sincronizado
✓ 3 trades sincronizados
✓ 5 moedas sincronizadas
```

**Dependências:**
- `mysql-connector-python`
- `pytz` (timezone)

**Instalação:**
```bash
pip install mysql-connector-python pytz
```

---

### 🔧 **extensoes_web.php**
**Tipo**: Documentação com código-exemplo  
**Tamanho**: ~300 linhas  
**Propósito**: Demonstrar funcionalidades avançadas que podem ser adicionadas

**Extensões demonstradas:**

1. **📊 Gráficos com Chart.js**
   - Evolução do portfólio (linha)
   - Distribuição atual vs. alvo (pizza)
   - Performance por moeda (barra)

2. **🔔 Sistema de Alertas**
   - Detecção de desvios críticos
   - Email de notificação
   - Webhook Discord
   - Registro em database

3. **🎮 Painel de Controle**
   - Botões iniciar/pausar robô
   - Rebalanceamento manual
   - Export de dados

4. **📡 API REST**
   - Endpoints JSON
   - Integração com sistemas externos
   - Status, histórico, alertas

5. **📥 Export de Dados**
   - Download em CSV
   - Formatação para análise externa

**Como usar:**
```
http://localhost/projetos/balanceamento/extensoes_web.php
```

**Implementação:**
- Copie os exemplos de código
- Adapte para suas necessidades
- Integre com `log_balanceamento.php`

---

### 🛠️ **utilis_web_balanceamento.py**
**Tipo**: Ferramentas CLI Python  
**Tamanho**: ~500 linhas  
**Propósito**: Diagnóstico, testes, backup e restore de dados

**Comandos disponíveis:**

```bash
# 1. Verificar integridade de arquivos
python utilis_web_balanceamento.py verificar_arquivos

# 2. Testar conexão com MySQL
python utilis_web_balanceamento.py testar_conexao_db

# 3. Gerar dados de exemplo (para testes)
python utilis_web_balanceamento.py gerar_dados_exemplo

# 4. Limpar dados de teste
python utilis_web_balanceamento.py limpar_dados

# 5. Rodada completa de diagnósticos
python utilis_web_balanceamento.py diagnosticar

# 6. Fazer backup de portfolio_estado.json
python utilis_web_balanceamento.py backup_dados

# 7. Restaurar de um backup anterior
python utilis_web_balanceamento.py restaurar_backup
```

**Saída de exemplo:**
```
✓ Diretório existe: robobalanceamento
✓ Arquivo existe: configuracoes_balanceamento.json
✓ JSON válido
✓ Conectado ao MySQL!
✓ Espaço livre: 250.45 GB
```

---

### 📄 **INTERFACE_WEB.md**
**Tipo**: Documentação completa  
**Tamanho**: ~800 linhas  
**Propósito**: Guia detalhado da interface web

**Conteúdo:**
- Instalação passo-a-passo
- Descrição de cada componente
- Cores e design
- Dados e origem
- Troubleshooting
- Recursos avançados
- Segurança
- Responsividade

**Ler quando:**
- Necessita configuração avançada
- Quer customizar a interface
- Encontra problemas
- Quer integrar com banco

---

### 📖 **README_WEB.md**
**Tipo**: Guia rápido  
**Tamanho**: ~300 linhas  
**Propósito**: Quick start (5 minutos)

**Conteúdo:**
- Quick start
- Arquivos necessários
- O que você pode fazer
- Requisitos
- Setup básico vs. completo
- Troubleshooting simples
- Próximos passos

**Ler quando:**
- Primeira vez usando
- Quer começar rápido
- Precisa de referência rápida

---

### 📝 **INDICE_WEB.md**
**Tipo**: Este arquivo  
**Propósito**: Índice completo de tudo

---

## 🚀 Fluxos de Uso

### **Fluxo 1: Monitoramento Básico (5 min)**

```
1. Abrir navegador
2. log_balanceamento.php
3. Refresh para atualizar (F5)
4. ✅ Feito!
```

### **Fluxo 2: Setup Completo com Banco (30 min)**

```
1. Executar setup_db_balanceamento.php
2. Instalar mysql-connector-python
3. python sincronizar_db_balanceamento.py
4. Configurar cron job (automático)
5. Acessar extensões (gráficos)
6. ✅ Feito!
```

### **Fluxo 3: Troubleshooting (10 min)**

```
1. python utilis_web_balanceamento.py diagnosticar
2. Verificar erros no output
3. Ler seção "Troubleshooting" apropriada
4. Aplicar solução
5. ✅ Resolvido!
```

### **Fluxo 4: Backup & Restore (2 min)**

```
1. python utilis_web_balanceamento.py backup_dados
2. [Fazer modificações]
3. python utilis_web_balanceamento.py restaurar_backup
4. ✅ Restaurado!
```

---

## 📊 Funcionalidades por Arquivo

| Funcionalidade | Arquivo | Tipo |
|---|---|---|
| Dashboard em tempo real | `log_balanceamento.php` | Interface |
| Criar banco MySQL | `setup_db_balanceamento.php` | Setup |
| Sincronizar com banco | `sincronizar_db_balanceamento.py` | Python |
| Exemplos avançados | `extensoes_web.php` | Código |
| Diagnóstico | `utilis_web_balanceamento.py` | Ferramenta |
| Teste de dados | `utilis_web_balanceamento.py` | Ferramenta |
| Backup/Restore | `utilis_web_balanceamento.py` | Ferramenta |

---

## 🔐 Segurança

### Sem Exposição de Senhas
- ✅ Não exibe API keys
- ✅ Credenciais MySQL em arquivo local
- ✅ Read-only da web interface

### Como Proteger
```apache
# .htaccess (raiz do projeto)
AuthType Basic
AuthName "Acesso Restrito"
AuthUserFile /path/to/.htpasswd
Require valid-user
```

Gerar .htpasswd:
```bash
htpasswd -c .htpasswd usuario_web
```

---

## 📈 Próximos Passos

### Curto Prazo (hoje)
- [ ] Acessar `log_balanceamento.php`
- [ ] Verificar dados aparecendo
- [ ] Executar diagnóstico

### Médio Prazo (semana)
- [ ] Setup banco de dados
- [ ] Configurar sincronização
- [ ] Testar sincronização manual

### Longo Prazo (mês)
- [ ] Implementar gráficos (Chart.js)
- [ ] Adicionar alertas (email/Discord)
- [ ] Criar API REST
- [ ] Adicionar autenticação

---

## 🆘 Problemas Comuns

### "Página em branco"
**Solução**: Verificar `php_error_balanceamento.log`

### "Robô aparece INATIVO"
**Solução**: `python utilis_web_balanceamento.py testar_conexao_db`

### "Tabela vazia"
**Solução**: `python utilis_web_balanceamento.py gerar_dados_exemplo`

### "Erro de MySQL"
**Solução**: `python utilis_web_balanceamento.py testar_conexao_db`

---

## 📚 Recursos Externos

- [Python Docs](https://docs.python.org/3/)
- [PHP Manual](https://www.php.net/manual/pt_BR/)
- [MySQL Docs](https://dev.mysql.com/doc/)
- [Chart.js](https://www.chartjs.org/)
- [Discord Webhooks](https://discordapp.com/developers/)

---

## 📞 Suporte

### Checklist de Debug
1. [ ] Arquivo `portfolio_estado.json` existe?
2. [ ] Arquivo `log_balanceamento.log` existe?
3. [ ] Robô está rodando?
4. [ ] Permissões de arquivo corretas? (644)
5. [ ] PHP 7.4+ instalado?
6. [ ] MySQL rodando? (se usar banco)

### Comandos Úteis
```bash
# Verificar se robô está rodando
python utilis_web_balanceamento.py diagnosticar

# Validar JSON
python -m json.tool robobalanceamento/portfolio_estado.json

# Listar arquivos
ls -la robobalanceamento/

# Ver último log
tail -20 robobalanceamento/log_balanceamento.log
```

---

## 📊 Estatísticas

| Métrica | Valor |
|---------|-------|
| Arquivos criados | 8 |
| Linhas de código PHP | 1000+ |
| Linhas de código Python | 1400+ |
| Tabelas MySQL | 6 |
| Documentação | 3000+ linhas |
| Instalação rápida | 5 minutos |
| Setup completo | 30 minutos |

---

## ✅ Checklist Final

- [ ] Acessou `log_balanceamento.php`?
- [ ] Viu dados aparecendo?
- [ ] Rodou diagnóstico?
- [ ] Leu `README_WEB.md`?
- [ ] Explorou extensões?
- [ ] Fez backup?

**Se tudo OK**: Seu sistema de monitoramento está pronto! 🎉

---

**Versão**: 1.0  
**Criado**: 2024  
**Compatibilidade**: PHP 7.4+, Python 3.7+, MySQL 5.7+ (opcional)

Volte em [README_WEB.md](README_WEB.md) para um quick start!
