# Análise Completa do Projeto FluxCP

**Data da Análise:** 17 de Janeiro de 2026  
**Versão:** FluxCP para rAthena  
**Localização:** `c:\xampp\htdocs\fluxcp`

---

## 📋 Sumário Executivo

O **FluxCP** é um painel de controle web (Control Panel) desenvolvido em PHP para servidores de Ragnarok Online que utilizam o emulador rAthena. Trata-se de uma aplicação MVC (Model-View-Controller) robusta que oferece funcionalidades completas de gerenciamento de contas, personagens, itens, doações e administração de servidor.

---

## 🏗️ Arquitetura do Projeto

### Estrutura de Diretórios Principal

```
fluxcp/
├── addons/          # Sistema de plugins/extensões
├── config/          # Arquivos de configuração
├── data/            # Dados dinâmicos (logs, cache, uploads)
├── doc/             # Documentação
├── lang/            # Arquivos de tradução/idiomas
├── lib/             # Bibliotecas core do sistema
├── modules/         # Módulos funcionais (MVC)
├── themes/          # Temas visuais
│   ├── default/     # Tema padrão (análise detalhada abaixo)
│   ├── bootstrap/   # Tema alternativo
│   └── installer/   # Tema do instalador
├── index.php        # Ponto de entrada principal
└── error.php        # Tratamento de erros
```

### Tecnologias Utilizadas

- **Backend:** PHP 5.2+ (com suporte a PDO)
- **Banco de Dados:** MySQL 5+
- **Frontend:** HTML, CSS, JavaScript (jQuery 1.8.3)
- **Extensões Opcionais:**
  - GD2/FreeType2 (emblemas e CAPTCHA)
  - Tidy (limpeza de HTML)
  - mod_rewrite (URLs limpas)

---

## ⚙️ Configuração do Sistema

### Arquivo Principal: `config/application.php`

**Configurações Importantes Identificadas:**

```php
'ServerAddress'         => 'localhost'
'BaseURI'              => 'fluxcp'
'InstallerPassword'    => '123456789'
'DefaultLanguage'      => 'pt_br'          // Configurado para Português
'SiteTitle'            => 'Flux Control Panel'
'ThemeName'            => array('default', 'bootstrap')
'DebugMode'            => false
'SessionCookieExpire'  => 48               // Horas
'DateDefaultTimezone'  => 'UTC'
```

**Funcionalidades Habilitadas:**

- ✅ Sistema de Notícias CMS (`CMSNewsOnHomepage: true`)
- ✅ Service Desk (Sistema de tickets)
- ✅ Integração com Divine Pride (imagens de itens/monstros)
- ✅ Sistema de Doações PayPal
- ✅ Item Shop
- ✅ Rankings (Personagens, Guilds, Zeny, etc.)
- ✅ Logs detalhados
- ✅ Comandos Web (AtCommands remotos)
- ⚠️ Discord Webhooks (desabilitado: `DiscordUseWebhook: false`)
- ⚠️ CAPTCHA (desabilitado: `UseCaptcha: false`)
- ⚠️ reCAPTCHA (desabilitado: `EnableReCaptcha: false`)

---

## 🎨 Análise do Tema Padrão (Default)

### Localização
`themes/default/`

### Estrutura do Tema

```
default/
├── css/
│   ├── flux.css           # Estilos principais (1090 linhas)
│   └── flux/
│       ├── unitip.css     # Tooltips
│       ├── recaptcha.css  # Estilos reCAPTCHA
│       └── ie.css         # Correções para IE
├── js/
│   ├── jquery-1.8.3.min.js
│   ├── flux.datefields.js
│   ├── flux.unitip.js
│   └── ie9.js
├── img/                   # Imagens do tema
├── header.php             # Cabeçalho global
├── footer.php             # Rodapé global
└── [módulos]/             # Templates por módulo
    ├── account/
    ├── character/
    ├── main/
    │   ├── sidebar.php    # Menu lateral
    │   ├── loginbox.php   # Caixa de login
    │   ├── submenu.php    # Sub-menu
    │   └── pagemenu.php   # Menu de página
    └── ...
```

### Design e Identidade Visual

#### Paleta de Cores Principal

```css
/* Cores identificadas no flux.css */

/* Cabeçalho */
background-color: #8ebceb    /* Azul claro do header */

/* Sidebar/Menu */
background-color: #94b4d5    /* Azul médio - menu normal */
background-color: #708fae    /* Azul escuro - hover */
background-color: #c4d9ee    /* Azul muito claro - bordas */

/* Admin Menu */
background-color: #303030    /* Cinza escuro */
background-color: #4a5259    /* Cinza médio - hover */

/* Conteúdo */
background-color: #f5f5f5    /* Cinza muito claro - fundo */
background-color: #fff       /* Branco - cards */
border-color: #ddd           /* Cinza claro - bordas */

/* Links e Ações */
color: #4083c6              /* Azul - links */
color: #729fcf              /* Azul claro - hover */

/* Estados */
color: #0c0                 /* Verde - sucesso */
color: #f00                 /* Vermelho - erro/ban */
color: orange               /* Laranja - pendente */
```

#### Tipografia

```css
font-family: "Lucida Grande", "Lucida Sans", Verdana, Tahoma, sans-serif;
font-size: 9pt;              /* Base */
font-size: 10pt;             /* Inputs e menu */
font-size: 12pt;             /* Títulos de módulo */
```

#### Layout

- **Estrutura:** Baseada em tabelas (HTML tradicional)
- **Largura:** Fluida (100%)
- **Sidebar:** Fixa em 198px
- **Espaçamento:** 10px entre elementos principais
- **Bordas:** Cantos arredondados com imagens GIF

### Componentes Principais

#### 1. Header (`header.php`)

**Características:**
- Logo dinâmico (muda para admin se usuário for GM)
- Cor de fundo: `#8ebceb` (azul claro)
- Inclui meta tags e scripts jQuery
- Suporte a temas múltiplos
- Sistema de preferências de idioma

**Scripts Incluídos:**
```javascript
- jQuery 1.8.3
- flux.datefields.js (processamento de campos de data)
- flux.unitip.js (tooltips)
- Efeitos de hover nos inputs
- Sistema de atualização de servidor/tema preferido
```

#### 2. Sidebar (`main/sidebar.php`)

**Funcionalidades:**
- Menu administrativo (se aplicável)
- Menu principal categorizado
- Links dinâmicos baseados em permissões
- Confirmação de logout via JavaScript
- Estilo diferenciado para admin (tema escuro)

**Categorias de Menu (configuradas em `application.php`):**
- Main Menu (Home, Fórum, Notícias, Downloads, Regras)
- Account (Criar Conta, Login, Minha Conta, Histórico, Service Desk, Logout)
- Donations (Comprar, Doar)
- Information (Status, WoE, Castelos, Quem está Online, Rankings, Vendas)
- Database (Itens, Monstros)
- Social (Facebook, RMS)
- Service Desk (Admin)
- Misc. Stuff (Ferramentas Admin)

#### 3. Loginbox (`main/loginbox.php`)

**Exibição quando logado:**
- Nome do usuário com link para perfil
- Servidor atual
- Seletor de servidor preferido (se múltiplos)
- Menu admin inline (se `AdminMenuNewStyle: true`)
- Cor de fundo: `#e1eaf3` (azul muito claro)

#### 4. Content Area

**Estrutura:**
- Fundo: `#f5f5f5`
- Cantos arredondados (imagens GIF)
- Padding interno
- Sistema de mensagens (sucesso/erro/aviso)
- Sub-menu contextual
- Page menu (breadcrumbs)
- Área de conteúdo dinâmico

### Elementos de Interface

#### Tabelas

**Horizontal Table:**
```css
.horizontal-table th {
    background-color: #eee;
    padding: 5px 10px;
}
.horizontal-table td {
    background-color: #fff;
    padding: 5px 10px;
}
```

**Vertical Table:**
- Similar à horizontal
- Labels em bloco
- Usado para formulários

#### Formulários

**Inputs:**
```css
input[type=text], input[type=password] {
    padding: 4px;
    font-size: 10pt;
    color: #444;
    border: 1px solid #ddd;
}

/* Efeito Focus (via jQuery) */
focus: {
    background-color: #f9f5e7;
    border-color: #dcd7c7;
    color: #726c58;
}
```

**Botões:**
```css
.submit_button {
    padding: 5px;
    background-color: #eee;
    border: 1px solid #ccc;
}
.submit_button:hover {
    color: #fff;
    background-color: #333;
    border: 1px solid #111;
}
```

#### Mensagens e Notificações

```css
/* Mensagem Geral */
.message {
    padding: 10px;
    font-weight: bold;
    font-size: 120%;
    color: #fff;
    background-color: #333;
}

/* Aviso */
.notice {
    padding: 10px;
    font-size: 120%;
    color: #204a87;
    background-color: #F0FFFF;
    border: 1px solid #87CEEB;
}

/* Erro */
.red {
    color: #fff;
    background-color: #f00;
}

/* Sucesso */
.green {
    color: #fff;
    background-color: #0c0;
}
```

#### Sistema de Paginação

```css
.pages {
    margin-top: 20px;
    padding-top: 10px;
    color: #ccc;
    text-align: center;
    border-top: 1px solid #ddd;
}
.current-page {
    color: #000;
    font-weight: bold;
}
```

#### Item Shop

```css
.shop-table {
    width: 100%;
    border-spacing: 0 10px;
}
.shop-item-name {
    font-size: 140%;
    color: #222;
    border-bottom: 1px solid #eee;
}
.cost {
    color: #000;
    font-size: 120%;
    font-weight: bold;
}
```

---

## 📦 Módulos do Sistema

### Módulos Principais Identificados

```
modules/
├── account/        # Gerenciamento de contas
├── character/      # Gerenciamento de personagens
├── guild/          # Gerenciamento de guildas
├── item/           # Banco de dados de itens
├── monster/        # Banco de dados de monstros
├── news/           # Sistema CMS de notícias
├── pages/          # Sistema CMS de páginas
├── donate/         # Sistema de doações
├── purchase/       # Item shop/loja
├── ranking/        # Rankings diversos
├── server/         # Status e informações do servidor
├── history/        # Histórico de ações
├── cplog/          # Logs do painel
├── logdata/        # Logs do rAthena
├── servicedesk/    # Sistema de tickets
├── vending/        # Vendas de jogadores
├── buyingstore/    # Compras de jogadores
├── ipban/          # Gerenciamento de IP bans
├── mail/           # Sistema de e-mail
├── webcommands/    # Comandos remotos
└── woe/            # War of Emperium
```

### Padrão MVC

Cada módulo segue a estrutura:
```
module_name/
├── index.php       # Action padrão
├── action1.php     # Ações específicas
├── action2.php
└── ...
```

Os templates correspondentes ficam em:
```
themes/default/module_name/
├── index.php
├── action1.php
└── ...
```

---

## 🔐 Sistema de Permissões

### Níveis de Conta (config/groups.php)

```php
AccountLevel::ANYONE          // Qualquer visitante
AccountLevel::NORMAL          // Usuário normal
AccountLevel::LOWGM           // GM baixo nível
AccountLevel::HIGHGM          // GM alto nível
AccountLevel::ADMIN           // Administrador
```

### Controle de Acesso

Configurado em `config/access.php` e mesclado com addons.

**Exemplo de restrições:**
```php
'HideFromWhosOnline'    => AccountLevel::LOWGM
'HideFromMapStats'      => AccountLevel::LOWGM
'AdminMenuGroupLevel'   => AccountLevel::LOWGM
'NoResetPassGroupLevel' => AccountLevel::LOWGM
```

---

## 🗄️ Banco de Dados

### Tabelas do FluxCP

```sql
-- Tabelas principais (config/application.php - FluxTables)
cp_credits              -- Créditos dos usuários
cp_xferlog              -- Log de transferências
cp_itemshop             -- Itens da loja
cp_txnlog               -- Log de transações
cp_redeemlog            -- Log de resgates
cp_createlog            -- Log de criação de contas
cp_banlog               -- Log de bans
cp_ipbanlog             -- Log de IP bans
cp_trusted              -- E-mails PayPal confiáveis
cp_loginprefs           -- Preferências de login
cp_charprefs            -- Preferências de personagem
cp_resetpass            -- Reset de senhas
cp_emailchange          -- Mudanças de e-mail
cp_loginlog             -- Log de logins no CP
cp_pwchange             -- Log de mudanças de senha
cp_onlinepeak           -- Pico de jogadores online
cp_cmsnews              -- Notícias do CMS
cp_cmspages             -- Páginas do CMS
cp_cmssettings          -- Configurações do CMS
cp_servicedesk          -- Tickets do service desk
cp_servicedeska         -- Respostas do service desk
cp_servicedeskcat       -- Categorias do service desk
cp_servicedesksettings  -- Configurações do service desk
cp_commands             -- Comandos web
cp_itemdesc             -- Descrições de itens
```

### Integração com rAthena

O FluxCP se conecta aos bancos de dados do rAthena:
- **logindb** - Contas de login
- **charmapdb** - Personagens, itens, guilds, etc.

---

## 🌐 Internacionalização

### Idiomas Disponíveis

Localização: `lang/`

**Idiomas identificados:**
- Português Brasileiro (`pt_br/`) - **CONFIGURADO COMO PADRÃO**
- Inglês (`en_us/`)
- Outros idiomas podem estar presentes

### Sistema de Tradução

```php
// Uso no código
Flux::message('LabelKey')

// Arquivos de tradução
lang/pt_br/module_name.php
```

---

## 🔌 Sistema de Addons

### Localização
`addons/`

### Exemplo: HelloWorld

```
addons/helloworld/
├── config/
│   ├── addon.php      # Configuração do addon
│   └── access.php     # Permissões
├── modules/           # Módulos adicionais
└── themes/            # Templates do addon
```

### Carregamento

Os addons são automaticamente carregados pelo `Flux::initialize()` e suas configurações são mescladas com as principais.

---

## 📊 Funcionalidades Destacadas

### 1. Sistema de Notícias (CMS)

- Editor TinyMCE integrado
- Suporte a RSS externo
- Exibição na homepage
- Gerenciamento completo (criar, editar, deletar)
- Controle de modificações

### 2. Service Desk

- Sistema de tickets ITIL-style
- Categorias customizáveis
- Respostas de staff
- Sistema de recompensas (créditos)
- Estados: Pendente, Resolvido, Fechado
- Cores customizáveis por estado

### 3. Item Shop

- Categorias de itens
- Imagens automáticas (Divine Pride)
- Sistema de carrinho
- Checkout com créditos
- Log de resgates
- Limite de custo/quantidade configurável

### 4. Sistema de Doações

- Integração PayPal IPN
- Verificação de segurança (IPs whitelist)
- E-mails confiáveis
- Taxa de conversão configurável
- Hold de contas não confiáveis
- Auto-unhold opcional
- Notificações de tentativas de hack

### 5. Rankings

**Tipos disponíveis:**
- Personagens (por nível/experiência)
- Guilds
- Zeny
- Mortes
- Alquimistas
- Ferreiros
- Homunculus
- MVP

**Configurações:**
- Limites de exibição
- Threshold de dias de login
- Ocultação de banidos
- Ocultação de GMs

### 6. Logs Detalhados

**CP Logs:**
- Transações PayPal
- Criação de contas
- Logins
- Reset de senhas
- Mudanças de senha
- Mudanças de e-mail
- Bans de conta
- IP bans

**rAthena Logs:**
- Branches
- Personagens
- Cash Points
- Chat
- Comandos
- Feeding
- Interações
- Item Picks
- Logins
- MVP
- NPC
- Zeny

### 7. Comandos Web (AtCommands)

- Execução remota de comandos do servidor
- Integração com Discord (webhook)
- Log de comandos executados
- Requer permissões administrativas

### 8. Segurança

**Recursos implementados:**
- Proteção contra SQL Injection (PDO)
- Validação de senhas (complexidade configurável)
- Senhas GM mais fortes
- CAPTCHA/reCAPTCHA (opcional)
- IP Whitelist para bans
- Confirmação de e-mail (opcional)
- Sessões seguras
- Proteção CSRF
- Logs detalhados de ações

---

## 🎯 Pontos Fortes

1. **Arquitetura Modular** - Fácil extensão via addons
2. **Sistema de Temas** - Múltiplos temas suportados
3. **Internacionalização** - Suporte completo a múltiplos idiomas
4. **Documentação** - Bem documentado no código
5. **Comunidade Ativa** - GitHub com atualizações frequentes
6. **Integração Completa** - Acesso total aos dados do rAthena
7. **Funcionalidades Ricas** - CMS, Shop, Tickets, Rankings, etc.
8. **Segurança** - Múltiplas camadas de proteção

---

## ⚠️ Pontos de Atenção

1. **Tecnologia Antiga**
   - PHP 5.2 (versão muito antiga, EOL)
   - jQuery 1.8.3 (versão antiga)
   - Layout baseado em tabelas (não responsivo)

2. **Design Não Responsivo**
   - Tema padrão não é mobile-friendly
   - Larguras fixas em alguns elementos
   - Uso de tabelas para layout

3. **Dependências Opcionais**
   - GD2 necessário para emblemas
   - mod_rewrite para URLs limpas
   - Tidy para HTML limpo

4. **Segurança**
   - Requer configuração cuidadosa
   - Senha do instalador em texto plano no config
   - Debug mode deve estar desabilitado em produção

---

## 🔧 Recomendações de Melhoria

### Curto Prazo

1. **Atualizar Senha do Instalador**
   ```php
   'InstallerPassword' => '123456789' // MUDAR ISSO!
   ```

2. **Habilitar HTTPS**
   - Configurar SSL/TLS
   - Forçar HTTPS via .htaccess

3. **Configurar Discord Webhooks**
   ```php
   'DiscordUseWebhook' => true,
   'DiscordWebhookURL' => 'sua_url_aqui',
   ```

4. **Habilitar CAPTCHA**
   ```php
   'UseCaptcha' => true,
   // ou
   'EnableReCaptcha' => true,
   'ReCaptchaPublicKey' => 'sua_chave',
   'ReCaptchaPrivateKey' => 'sua_chave',
   ```

### Médio Prazo

1. **Criar Tema Responsivo**
   - Usar Bootstrap (tema já existe)
   - Adaptar para mobile
   - Remover tabelas de layout

2. **Atualizar Dependências**
   - jQuery 3.x
   - PHP 7.4+ ou 8.x
   - MySQL 8.x

3. **Melhorar Performance**
   - Implementar cache
   - Otimizar queries
   - Comprimir assets

### Longo Prazo

1. **Modernizar Arquitetura**
   - Migrar para framework moderno (Laravel, Symfony)
   - API RESTful
   - Frontend SPA (React, Vue)

2. **Containerização**
   - Docker para desenvolvimento
   - Docker Compose para stack completa

3. **CI/CD**
   - Testes automatizados
   - Deploy automático
   - Monitoramento

---

## 📝 Conclusão

O **FluxCP** é um sistema maduro e completo para gerenciamento de servidores Ragnarok Online. Apesar de usar tecnologias antigas, possui uma arquitetura sólida e extensível. O tema padrão é funcional mas datado, sendo recomendável migrar para o tema Bootstrap ou criar um tema moderno e responsivo.

**Pontuação Geral:**
- **Funcionalidade:** ⭐⭐⭐⭐⭐ (5/5)
- **Código:** ⭐⭐⭐⭐ (4/5)
- **Design:** ⭐⭐⭐ (3/5)
- **Segurança:** ⭐⭐⭐⭐ (4/5)
- **Documentação:** ⭐⭐⭐⭐ (4/5)

**Recomendação:** Excelente escolha para servidores de RO, mas considere modernizar o frontend e atualizar dependências para produção.

---

## 📚 Recursos Adicionais

- **GitHub:** https://github.com/rathena/FluxCP
- **Discord:** https://discord.gg/kMeMXWEvSV
- **Documentação:** `doc/` directory
- **rAthena:** https://rathena.org

---

**Análise realizada por:** Antigravity AI  
**Ferramenta:** Análise automatizada de código e estrutura  
**Versão do documento:** 1.0
