MATRIX WEB LAB — PRUEBAS EN CLOUDFLARE PAGES Versión 1.0 · 11 noviembre 2026 QUÉ INCLUYE Interfaz Matrix adaptable a móvil, grupos G1–G5, subida de ZIP, diagnóstico automático, registro central en D1 y descarga real de Excel (.xlsx) protegida por clave docente. El modo inicial funciona SIN clave de IA. Su nota es SIMULADA y se basa en patrones de HTML/CSS; no mide diseño visual. La interfaz lo indica expresamente. 1. SUBIR EL ZIP En Cloudflare entra en Workers & Pages > Create application > Pages > Get started / Drag and drop your files (la ubicación exacta puede variar). Elige subida directa, pon un nombre (por ejemplo matrix-web-lab), arrastra este ZIP completo y pulsa Deploy site. El ZIP contiene index.html y _worker.js en la raíz. No lo subas como una web estática de Workers: usa Cloudflare Pages, con soporte de _worker.js. Guarda la dirección https://NOMBRE.pages.dev. 2. CREAR EL REGISTRO CENTRAL En Cloudflare abre Storage & databases > D1 SQL Database y crea una base llamada matrix-registro. Vuelve a tu proyecto Pages > Settings > Bindings > Add > D1 database. Variable name: DB (mayúsculas, exactamente). Selecciona matrix-registro y guarda. La aplicación crea su tabla al recibir la primera petición autorizada; no tienes que introducir SQL. 3. AÑADIR LAS CLAVES En tu proyecto Pages > Settings > Variables and Secrets configura, como secretos: TEST_PASSWORD = una clave larga de pruebas, que introducirás al subir entregas. ADMIN_PASSWORD = otra clave distinta, solo para descargar el Excel. Usa claves aleatorias largas (al menos 20 caracteres). Nunca las escribas en los archivos del ZIP. Configura el entorno Production si has desplegado en producción. Si pruebas una rama Preview, necesita sus propias vinculaciones y secretos. 4. VOLVER A DESPLEGAR Después de añadir DB y los secretos, crea un nuevo despliegue del MISMO ZIP para aplicar la configuración. Abre la web. Debe indicar MODO PRUEBA y que el registro se guarda en el servidor. Selecciona un grupo, introduce TEST_PASSWORD y sube un ZIP con HTML/CSS. Para empezar: crea un index.html con un título, un párrafo y algunos estilos; comprímelo como ZIP. Puedes incluir carpetas, CSS e imágenes. 5. DESCARGAR EL EXCEL Abre Área del profesor, introduce ADMIN_PASSWORD y pulsa Descargar .xlsx. También debe estar introducida TEST_PASSWORD en el formulario de entrega. El archivo tiene fecha UTC, grupo, modo, versión, nota, nota original, nombre de archivo, valoración, fortalezas, mejoras y limitaciones. Los datos quedan guardados en D1. Excel se genera al descargarlo: no se mantiene un archivo Excel mutable dentro de Cloudflare. No se guardan los ZIP ni su código fuente en D1: solo huella del HTML/CSS, nombre de archivo e informe. 6. CÓMO CUENTAN LAS CINCO SUBIDAS Cada combinación de grupo + modo tiene su contador independiente. Se calcula una huella de las rutas y del contenido HTML/CSS. Reempaquetar el mismo código no suma una versión; se recupera el informe anterior. Cambiar solo imágenes tampoco suma una versión en esta edición, porque no se inspeccionan visualmente. Los cambios de texto, espacios o nombres de archivo sí cuentan. Esto NO demuestra mejora pedagógica: es un control básico de duplicados para las pruebas. Tope de las versiones 1–4: 9,9. A partir de la versión 5 se permite el 10, pero debe obtenerse por calidad. Las notas anteriores no cambian al alcanzar cinco versiones. Una entrega idéntica conserva su nota e intento originales. Solo se registran evaluaciones completadas; errores y duplicados no crean filas nuevas. 7. IA OPCIONAL — SOLO REVISIÓN DE CÓDIGO En Variables and Secrets configura: REVIEW_API_URL = URL HTTPS completa de un endpoint compatible con chat completions. REVIEW_MODEL = identificador de un modelo disponible en tu proveedor. REVIEW_API_KEY = clave del proveedor, como SECRET. Vuelve a desplegar el mismo ZIP. Al estar presentes las tres variables, la interfaz cambia a IA · CÓDIGO. El servidor envía el HTML/CSS al proveedor; la clave nunca llega al navegador. El proveedor puede tener costes o cuotas. El modelo debe aceptar mensajes system/user y devolver texto JSON dentro de choices[0].message.content. No todos los proveedores o modelos son compatibles. Si faltan las tres variables completas se usa prueba. Un fallo de la IA NO se sustituye silenciosamente por una nota de prueba. Esta versión NO hace capturas de escritorio/móvil, NO ejecuta la web y NO evalúa imágenes, contrastes medidos, enlaces ni renderizado real. Su nota es orientativa del código. Para corregir un diseño visual de forma completa hace falta añadir un servicio de renderizado aislado y un modelo visual; no está incluido en este paquete. 8. LÍMITES Y ALCANCE DE ESTA PRUEBA ZIP: 5 MB máximo, 200 entradas, 10 MB descomprimidos y 2 MB por archivo; HTML/CSS total: 120.000 caracteres. Se admite ZIP estándar sin contraseña. El contenido HTML/CSS se analiza como texto, nunca se publica ni se ejecuta. El modo de prueba busca 8 patrones y calcula una nota simulada con su proporción. No equivale a un validador HTML/CSS ni a una revisión humana. La clave compartida protege las operaciones, pero no identifica alumnos: quien conoce la clave puede elegir cualquier grupo. No hay cuentas individuales ni control de frecuencia por alumno. Está pensado para tu prueba privada, no para abrirlo todavía a todo el alumnado. Mantén las claves privadas y usa entregas sin datos personales para las pruebas de IA. No hay borrado desde la interfaz; para reiniciar, usa una nueva base D1 o borra los registros desde su consola bajo tu responsabilidad. No se requiere R2, Python, npm ni instalar nada en tu ordenador para subir este paquete. 9. ERRORES HABITUALES Configuración pendiente: revisa DB y TEST_PASSWORD y vuelve a desplegar. Clave incorrecta: revisa que sea la del entorno de despliegue actual, sin espacios añadidos. No se conecta al servidor: comprueba que _worker.js está en la raíz y que usaste Pages. Error de IA: comprueba la URL completa, el modelo, la cuota y los permisos de la clave. ZIP rechazado: comprueba límites, que contiene HTML y que no está cifrado. FUENTES DE DESPLIEGUE https://developers.cloudflare.com/pages/get-started/direct-upload/ https://developers.cloudflare.com/pages/functions/advanced-mode/ https://developers.cloudflare.com/pages/functions/bindings/ VERIFICACIÓN Se incluyen pruebas automatizadas del procesamiento ZIP, notas de prueba, exportación Excel y flujo del servidor con D1 local. No se ha desplegado en tu cuenta de Cloudflare; debes comprobar la conexión a D1 y, si la activas, a tu proveedor de IA. LICENCIAS El servidor incluye fflate (MIT); consulta LICENSE-fflate.txt dentro del paquete.