# 🚀 Guia de Instalação - UtilizaAI

## Pré-requisitos

- PHP 7.4 ou superior
- MySQL 5.7 ou superior (ou MariaDB 10.2+)
- Apache com mod_rewrite habilitado
- Ou Nginx 1.14+
- Git (opcional)

## Instalação Rápida

### 1. Clonar o Repositório

```bash
git clone https://github.com/seu-usuario/utilizaai.git
cd utilizaai
```

Ou descompactar o arquivo ZIP:
```bash
unzip utilizaai.zip
cd utilizaai
```

### 2. Estrutura de Pastas

A estrutura já deve estar criada:
```
utilizaai/
├── public/           # Arquivos públicos (raiz web)
├── src/
│   ├── api/         # Endpoints da API
│   ├── database/    # Configurações de banco
│   └── includes/    # Includes compartilhados
├── setup.php        # Script de instalação
└── README.md
```

### 3. Criar Banco de Dados

#### MySQL/MariaDB:

```bash
# Acessar MySQL
mysql -u root -p

# Criar banco e usuário
CREATE DATABASE utilizaai CHARACTER SET utf8mb4;
CREATE USER 'utilizaai'@'localhost' IDENTIFIED BY 'senha_segura';
GRANT ALL PRIVILEGES ON utilizaai.* TO 'utilizaai'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

#### Importar Schema:

```bash
mysql -u utilizaai -p utilizaai < src/database/schema.sql
```

### 4. Configurar o Banco de Dados

Editar `src/includes/config.php`:

```php
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'utilizaai');
define('DB_PASS', 'sua_senha_aqui');
define('DB_NAME', 'utilizaai');
// ... resto das configurações
?>
```

### 5. Permissões de Pastas

```bash
# Linux/Mac
chmod -R 755 public/
chmod -R 777 public/uploads/
chmod 644 public/.htaccess

# Windows (via Git Bash)
chmod -R 755 public/
chmod -R 777 public/uploads/
```

### 6. Servidor Local

#### Com PHP Built-in:

```bash
cd public
php -S localhost:8000
# Acesse: http://localhost:8000
```

#### Com Apache:

Configurar VirtualHost:
```apache
<VirtualHost *:80>
    ServerName utilizaai.local
    DocumentRoot /caminho/para/utilizaai/public
    
    <Directory /caminho/para/utilizaai/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
```

Adicionar ao `/etc/hosts` (ou `C:\Windows\System32\drivers\etc\hosts`):
```
127.0.0.1 utilizaai.local
```

Reiniciar Apache:
```bash
sudo systemctl restart apache2  # Linux
# ou em Windows: apache restart via Services
```

#### Com Nginx:

Usar configuração em `nginx.conf` e copiar para `/etc/nginx/sites-available/`

```bash
sudo ln -s /etc/nginx/sites-available/utilizaai /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
```

### 7. Acessar a Aplicação

1. Abrir o navegador
2. Ir para: `http://localhost:8000` ou `http://utilizaai.local`
3. Você verá a página inicial com todas as ferramentas

## Verificação de Instalação

Visitar `setup.php` para verificar o status:
```
http://localhost:8000/setup.php
```

## Estrutura de Pastas Explicada

```
public/                    # Raiz web pública
├── index.php             # Página inicial
├── css/
│   └── styles.css        # Estilos principais
├── js/
│   └── scripts.js        # JavaScript principal
├── tools/                # Ferramentas individuais
│   ├── pdf-to-word.php
│   ├── image-converter.php
│   └── ...
├── uploads/              # Arquivos enviados (temporário)
└── assets/
    ├── images/
    └── icons/

src/                       # Código privado
├── api/
│   └── converters/       # APIs de conversão
├── database/
│   ├── Database.php      # Classe de conexão
│   └── schema.sql        # Schema SQL
└── includes/
    └── config.php        # Configurações globais
```

## Segurança

### Essencial:

1. **Alterar `ENCRYPTION_KEY` em `config.php`**
   ```php
   define('ENCRYPTION_KEY', 'sua-chave-unica-aleatoria');
   ```

2. **Usar senha forte para banco de dados**

3. **HTTPS em produção**
   - Usar certificado SSL/TLS
   - Redirecionar HTTP para HTTPS

4. **Manter permissões corretas**
   - `uploads/` deve ser 777
   - `src/` nunca deve ser acessível publicamente

5. **Manter PHP atualizado**

### Recomendado:

- Configurar firewall
- Usar WAF (Web Application Firewall)
- Fazer backups regulares
- Monitorar logs de erro
- Desabilitar `display_errors` em produção

## Troubleshooting

### "Erro: Conexão com banco de dados recusada"

- Verificar se MySQL está rodando
- Validar credenciais em `config.php`
- Verificar permissões do usuário

### "Pasta uploads não tem permissão"

```bash
# Linux/Mac
sudo chmod 777 public/uploads/
sudo chown -R www-data:www-data public/uploads/

# Windows
# Clicar direito > Propriedades > Segurança > Editar > Permissões
```

### "404 - Página não encontrada"

- Verificar se `.htaccess` está no `public/`
- Habilitar mod_rewrite: `a2enmod rewrite`
- Reiniciar Apache

### "Erro 500 - Erro Interno do Servidor"

- Verificar `error_log` do Apache
- Verificar permissões de pastas
- Aumentar `memory_limit` se necessário

## Próximos Passos

1. Customizar design com suas cores
2. Implementar conversores reais
3. Adicionar autenticação de usuários
4. Configurar email para notificações
5. Implementar painel administrativo
6. Adicionar suporte a múltiplas línguas

## Suporte

- Documentação: [docs/](docs/)
- Issues: [GitHub Issues](https://github.com)
- Email: suporte@utilizaai.com

## Licença

MIT License - veja [LICENSE](LICENSE)
