SISTEMA DE GESTIÓN DE ESTUDIANTES — MVC (PHP + MySQL/PDO)
==========================================================

Basado en la Sesión 15 (Metodología MVC). Incluye CRUD completo:
listar, crear, editar y eliminar estudiantes.

ESTRUCTURA DEL ZIP
-------------------
sistema_estudiantes_mvc/
├── app/                          -> SUBIR FUERA de public_html
│   ├── config/Database.php       (conexión PDO — aquí van tus credenciales)
│   ├── models/Estudiante.php     (datos + SQL)
│   ├── views/estudiantes/        (listar.php, formulario.php, editar.php)
│   └── controllers/EstudianteController.php
├── public_html/
│   └── index.php                 -> SUBIR DENTRO de public_html
└── database/schema.sql           -> Ejecutar en phpMyAdmin

PASOS PARA DESPLEGAR EN TU HOSTING (cPanel, usuario alfredoc_xamp)
--------------------------------------------------------------------
1) Crear la base de datos y el usuario en cPanel:
   - Entra a "MySQL® Databases" en cPanel.
   - Crea una base de datos, ej: colegio  -> quedará como
     alfredoc_xamp_colegio
   - Crea un usuario, ej: user -> quedará como alfredoc_xamp_user
   - Asigna ese usuario a la base de datos con TODOS los privilegios.

2) Cargar la tabla:
   - Abre phpMyAdmin desde cPanel.
   - Selecciona la base de datos alfredoc_xamp_colegio.
   - Ve a la pestaña "SQL" y pega el contenido de database/schema.sql
     (solo la parte de CREATE TABLE + INSERT, como se indica en el
     propio archivo).

3) Subir los archivos por FTP o Administrador de Archivos:
   - La carpeta "app/" (con config, models, views, controllers) debe
     quedar en tu directorio raíz, AL MISMO NIVEL que public_html,
     NO dentro de él. Ejemplo:
        /home/alfredoc_xamp/app/
        /home/alfredoc_xamp/public_html/
   - El archivo public_html/index.php va dentro de tu public_html
     (o dentro de una subcarpeta, ej. public_html/estudiantes/, si
     prefieres que la app viva en un subdirectorio del dominio).

   Si decides mover index.php a una subcarpeta (ej. public_html/estudiantes/index.php),
   el require_once de index.php sigue funcionando igual porque usa
   __DIR__ . '/../app/...', siempre que "app" quede un nivel arriba
   de donde esté index.php.

4) Editar credenciales:
   - Abre app/config/Database.php y reemplaza:
       $db_name  = "alfredoc_xamp_colegio";
       $username = "alfredoc_xamp_user";
       $password = "TU_PASSWORD_AQUI";
     por los datos reales que creaste en el paso 1.

5) Probar:
   - Entra a https://tudominio.com/ (o /estudiantes/ si usaste
     subcarpeta). Deberías ver la lista de estudiantes de ejemplo.
   - Prueba "Nuevo Estudiante", "Editar" y "Eliminar".

SEGURIDAD YA APLICADA
----------------------
- Conexión con PDO + sentencias preparadas (previene inyección SQL).
- htmlspecialchars() al guardar y al mostrar datos (previene XSS).
- Lógica de la app fuera de public_html (nadie puede descargar tu
  Database.php ni ver tu contraseña de MySQL).
- Si tu hosting usa HTTP 500 por permisos, revisa que los archivos
  .php tengan permisos 644 y las carpetas 755.
