# Portal ePromos — Hub de Juegos y Landings

Este proyecto es una plataforma gamificada para la captación de leads y aumento de engagement mediante experiencias interactivas. Incluye juegos de **Ruleta**, **Rasca y Gana**, y **Memoria**, además de un potente constructor de **Landing Pages**.

## 🚀 Requisitos del Sistema
- **PHP**: 8.0 o superior (Extensiones: `mysqli`, `mbstring`, `fileinfo`).
- **Base de Datos**: MariaDB/MySQL 10.4+.
- **Servidor Web**: Apache (con `mod_rewrite` habilitado) o Nginx.

---

## 🛠️ Instalación y Configuración

### 1. Preparar el Código
1. Clona el repositorio en tu servidor.
2. Asegúrate de que las carpetas en `uploads/` tengan permisos de escritura:
   ```bash
   chmod -R 775 uploads/
   ```

### 2. Configurar Base de Datos
1. Crea la base de datos:
   ```sql
   CREATE DATABASE ruleta_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
   ```
2. Importa el esquema base: `ruleta_db.sql`.
3. Importa el esquema de landings: `-- Tabla principal de landings.txt`.

### 3. Configurar Credenciales
1. Renombra `admin/db.php.example` a `admin/db.php`.
2. Edita los valores de host, usuario y contraseña:
   ```php
   $DB_HOST = 'tu_host';
   $DB_USER = 'tu_usuario';
   $DB_PASS = 'tu_password';
   $DB_NAME = 'ruleta_db';
   ```

### 4. Ajuste de Rutas (Importante)
El código asume por defecto que el proyecto vive en la subcarpeta `/ruleta/`. Si lo instalas en la raíz o en otra ruta, ajusta las siguientes constantes:
- **Admin**: En `admin/ruletas.php`, `admin/rasca_config.php`, etc., cambia `$PUBLIC_DIR`.
- **Landings**: En `landings_public.php`, cambia `PUBLIC_LANDING_ROUTE`.

---

## 🎮 Módulos Incluidos

### Ruleta
- Configuración de premios por ángulos (0-360°).
- Control de stock y probabilidad ponderada.
- **Ruta**: `index.html?ruleta_id=1`

### Rasca y Gana
- Capas de raspado personalizables.
- Premios dinámicos basados en stock.
- **Ruta**: `rasca_index.html?rasca_id=1`

### Memoria
- Gestión de pares de cartas.
- Posibilidad de enlazar con un premio final de ruleta.
- **Ruta**: `/memoria/?juego_id=1`

### Constructor de Landings
- Creación de landings vía Slug.
- A/B Testing integrado.
- Captura de formularios y exportación CSV.
- **Admin**: `/admin/landing.php`

---

## 🔐 Acceso al Panel de Administración
- **URL**: `/admin/`
- **Usuario por defecto**: `admin@localhost`
- **Contraseña temporal**: Para entrar por primera vez si no conoces la clave, ejecuta:
  ```sql
  UPDATE admin_users SET password_hash='admin123' WHERE email='admin@localhost';
  ```
  *Nota: El sistema re-hasheará la contraseña automáticamente al primer login.*

---

## 📦 Backup y Mantenimiento
- **Archivos**: Respaldar periódicamente la carpeta `uploads/`.
- **Base de Datos**: `mysqldump -u [user] -p ruleta_db > backup.sql`

---
*Desarrollado para GLM por Isaac Aracena.*
