# Cuedis — Guía de instalación en cPanel

## 1. Crear la base de datos

1. Entra a cPanel → **Bases de datos MySQL**.
2. Crea una base nueva, ej: `cuedis` (quedará como `TU_USER_cuedis`).
3. Crea un usuario de base de datos con contraseña fuerte.
4. Asócialo a la base con **todos los privilegios**.
5. Anota los 3 datos: nombre de la base, usuario, contraseña.

## 2. Importar el esquema

1. Entra a **phpMyAdmin** desde cPanel.
2. Selecciona tu base de datos `cuedis`.
3. Pestaña **Importar** → selecciona `sql/01_schema.sql` → Ejecutar.
4. Repite con `sql/02_seed.sql` (debe ir DESPUÉS del primero, no antes).
5. Verifica que aparezcan ~15 tablas con prefijo `cuedis_` y que `cuedis_sections` tenga 53 filas.

## 3. Subir los archivos

1. Sube toda la carpeta `cuedis-app/` a tu servidor vía **File Manager** o FTP.
   - Recomendado: como subcarpeta, ej. `public_html/cuedis/`
   - (También puedes usar un subdominio si prefieres una URL más limpia, ej. `cuedis.tudominio.cl` apuntando a esta carpeta)
2. La estructura final en el servidor debe verse así:
   ```
   public_html/cuedis/
     ├── admin/
     ├── api/
     ├── config/
     ├── generators/
     ├── includes/
     ├── public/
     ├── sql/           (puedes borrar esta carpeta después de importar, no se necesita en el servidor)
     ├── make-admin.php
     └── test-connection.php
   ```

## 4. Configurar la conexión

1. Edita `config/database.php` con File Manager (o descárgalo, edítalo, y vuelve a subirlo).
2. Reemplaza `$db`, `$user`, `$pass` con los datos que anotaste en el paso 1.

## 5. Probar la conexión

1. Abre en tu navegador: `https://tudominio.cl/cuedis/test-connection.php`
2. Deberías ver: `✅ Conexión exitosa. Secciones cargadas en la base de datos: 53`
3. Si ves un error, revisa las credenciales en `config/database.php`.
4. **Borra `test-connection.php` del servidor** una vez confirmado (no debe quedar público).

## 6. Probar el login real

1. Abre: `https://tudominio.cl/cuedis/public/index.html`
2. Crea una cuenta de prueba (correo + contraseña + nombre).
3. Deberías ver "✅ Login real conectado a MySQL correctamente."
4. Verifica en phpMyAdmin → tabla `cuedis_users` que aparezca tu nuevo usuario con la contraseña **hasheada** (no en texto plano).

## 7. Convertirte en admin (para cargar preguntas banco)

1. Abre: `https://tudominio.cl/cuedis/make-admin.php?email=tu@correo.cl` (el mismo correo con el que te registraste).
2. Deberías ver "✅ ahora es admin".
3. **Borra `make-admin.php` del servidor inmediatamente después** — si queda público, cualquiera podría hacerse admin.
4. Entra a `https://tudominio.cl/cuedis/admin/exercises.php` para cargar preguntas de las secciones tipo banco.

## Checklist de seguridad antes de usar con alumnos reales

- [ ] Borraste `test-connection.php`
- [ ] Borraste `make-admin.php`
- [ ] El sitio corre bajo **HTTPS** (candado verde) — si no, las cookies de sesión no quedan con `secure`
- [ ] La contraseña de la base de datos es fuerte y distinta a otras que uses
- [ ] `config/database.php` NO está en un repositorio Git público (si usas Git, agrégalo a `.gitignore`)

## Qué es real y qué es demo todavía

✅ **Ya funciona de verdad** (conectado a MySQL): registro, login, logout, sesiones, CSRF, rate limiting.

⏳ **Backend listo pero sin interfaz conectada todavía**: el catálogo de 53 secciones, los generadores de ejercicios, la tienda del vestidor — todo esto tiene su endpoint PHP funcionando (`api/get-sections.php`, `api/get-exercise.php`, etc.) pero la interfaz visual que armamos en los mockups (HTML standalone) todavía genera los ejercicios con JavaScript en el navegador, no llama a estos endpoints reales. Ese es el siguiente paso natural: conectar el mockup a estas rutas para que el progreso se guarde de verdad en la base de datos.

## Logo e íconos

Están en `public/assets/logo/`:

- `icon.svg` — ícono a color (cuaderno de espiral), vectorial, para usar en cualquier tamaño.
- `icon-mono.svg` — versión de un solo color (línea), para impresión b/n o fondos donde el color no combine.
- `logo-horizontal.svg` — ícono + wordmark "cuedis", para el header de la plataforma.
- `icon-16.png` a `icon-512.png` — versiones rasterizadas en PNG para los distintos usos (favicon, ícono de app en celular, redes sociales, etc.)

También hay un `favicon.ico` en la raíz de `public/` (multi-resolución: 16, 32 y 48px) — ya está enlazado en `public/index.html`. Si más adelante armas más páginas HTML, agrega este mismo `<link>` en cada una:

```html
<link rel="icon" type="image/x-icon" href="../favicon.ico">
```

Para usar el ícono cuadrado como ícono de app en celular (cuando lo agregues a la pantalla de inicio desde el navegador), usa `icon-192.png` o `icon-512.png` con una etiqueta `<link rel="apple-touch-icon">`.

