Versión 1.0 · Febrero 2026
Para uso interno y entrega a cliente
CONFIDENCIAL — Documento para distribución controlada
💡 Este inventario se extrajo directamente del código fuente de la aplicación. Todo lo descrito existe y está implementado. Las zonas marcadas [POR CONFIRMAR] requieren verificación con el equipo.
La plataforma tiene dos áreas independientes con autenticación separada:
| Pantalla (ruta) | Descripción | Acciones disponibles |
|---|---|---|
| AdminLogin | Autenticación admin | Login, cambio de contraseña, 2FA [POR CONFIRMAR si 2FA activo] |
| AdminDashboard | Panel principal | Ver estadísticas, gráficos, acciones rápidas |
| AdminCourses | Listado de cursos | Buscar, filtrar, ver, editar, duplicar, eliminar cursos |
| AdminCourseNew | Crear nuevo curso | Elegir método: manual / DOCX / IA / duplicar |
| AdminCourseEditor | Editor completo del curso | Editar módulos, lecciones, configuración, acceso, branding, exámenes, recursos |
| AdminStudents | Gestión de alumnos | Crear, editar, suspender, eliminar, generar credenciales, importar CSV |
| AdminStudentDetail | Detalle del alumno | Ver progreso, inscripciones, certificados de un alumno |
| AdminCompanies | Empresas cliente | Crear, editar, gestionar empresas |
| AdminExams | Gestión de exámenes | Crear manual, generar con IA, editar, eliminar exámenes |
| AdminExamEditor | Editor de examen | Añadir/editar preguntas, opciones, puntuaciones |
| AdminCertificates | Certificados emitidos | Ver, revocar, descargar certificados |
| AdminCertificateTemplates | Plantillas de certificado | Crear y editar plantillas visuales con branding |
| AdminForums | Foros | Moderar hilos y mensajes del foro [POR CONFIRMAR funcionalidades exactas] |
| AdminPractices | Prácticas | Revisar y calificar entregas de alumnos [POR CONFIRMAR] |
| AdminAuditLogs | Auditoría | Ver historial de acciones de admins y alumnos |
| AdminUsers | Administradores | Gestionar cuentas del panel admin |
| AdminSettings | Configuración | Ajustes generales del sistema [POR CONFIRMAR contenido exacto] |
| Pantalla | Descripción | Acciones |
|---|---|---|
| CampusLogin / StudentLogin | Login del alumno | Acceder con email y contraseña |
| StudentDashboard | Panel del alumno | Ver cursos, progreso, notificaciones, certificados, exámenes |
| StudentCourses | Mis cursos | Listado de cursos inscritos con progreso |
| StudentCourseView | Visor de curso | Navegar módulos/lecciones, ver vídeos, marcar completadas |
| StudentExams | Mis exámenes | Ver exámenes disponibles y resultados anteriores |
| StudentExamTake | Realizar examen | Contestar preguntas con temporizador |
| StudentExamResult | Resultado del examen | Ver puntuación, respuestas correctas/incorrectas |
| StudentCertificates | Mis certificados | Ver y descargar certificados obtenidos |
| StudentProfile | Mi perfil | Editar datos personales, foto de perfil |
| StudentForum | Foro del curso | Participar en discusiones [POR CONFIRMAR activación por curso] |
| StudentSupport | Soporte | Contactar soporte [POR CONFIRMAR] |
La plataforma tiene 4 roles diferenciados:
| Rol | Descripción | Dashboard | Cursos | Alumnos | Empresas | Exámenes | Certs. | Prácticas | Foros | Config. | Auditoría |
|---|---|---|---|---|---|---|---|---|---|---|---|
| superadmin | Acceso total | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| account_manager | Gestión operativa | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — |
| support | Solo auditoría | ✅ | — | — | — | — | — | — | — | — | ✅ |
| Alumno | Portal alumno | — | — | — | Solo propio | — | Solo propio | Solo propio | Solo propio | — | — |
⚠️ Los roles superadmin y account_manager acceden al panel de administración. El rol support tiene acceso limitado al dashboard y auditoría. Los alumnos usan el portal separado (CampusLogin).
Alcance confirmado: Gestión de cursos B2B, módulos y lecciones, exámenes con IA, certificados personalizables, alumnos por empresa, foros, prácticas, auditoría completa.
Excluido: Pagos en línea (no implementado), marketplace público, registro libre de alumnos (solo admin crea cuentas).
El sistema debe autenticar a los administradores con email y contraseña antes de permitir el acceso al panel.
Given El administrador accede a /AdminLogin
When Introduce credenciales correctas
Then Se crea sesión en localStorage y se redirige a /AdminDashboard
El superadmin y account_manager pueden crear, editar, publicar, archivar y eliminar cursos.
Given El admin está autenticado con rol superadmin o account_manager
When Crea o edita un curso
Then El curso se guarda en base de datos con estado 'draft' por defecto
El sistema debe parsear un archivo .docx y crear automáticamente módulos y lecciones.
Given El admin sube un archivo .docx con estilos Heading 1 y Heading 2
When Se procesa el archivo en el backend
Then Se crean módulos (H1) y lecciones (H2) con el contenido correspondiente
El sistema debe permitir generar exámenes automáticamente mediante IA a partir del contenido de un curso.
Given El admin selecciona un curso y configura parámetros (n.º preguntas, tipo, penalización)
When Invoca la función generateExamQuestions
Then Se generan preguntas con opciones y respuestas correctas marcadas
Los admins pueden crear, editar, suspender y eliminar alumnos. Al crear, se genera contraseña y se envía por email.
Given El admin rellena el formulario de nuevo alumno con email, nombre y cursos
When Confirma la creación
Then Se crea el alumno, se genera AccessCredential y se envía email de bienvenida con credenciales
Al completar un curso (sin examen final) o al superar el examen final, se emite un certificado.
Given El alumno completa el 100% de lecciones de un curso sin examen final requerido
When Hace clic en Finalizar curso
Then Se crea un Certificate con número único, código de verificación, fecha y nota final
Los admins deben poder importar alumnos en bloque mediante archivo CSV.
Given El admin sube un CSV con columnas email, name, surname, company_name
When Procesa el archivo
Then Se crean todos los alumnos válidos, se reportan los errores y se envían emails automáticos
Se debe poder duplicar un curso existente con sus módulos, lecciones, exámenes y recursos.
Given El admin selecciona un curso y elige Duplicar
When Configura qué elementos copiar y el nuevo título
Then Se crea una copia completa en estado borrador sin inscripciones ni certificados
Los cursos pueden tener un foro de discusión habilitado/deshabilitado.
Given El admin activa forum_enabled en la configuración del curso
When El alumno inscrito accede al foro
Then Puede crear hilos y respuestas, el admin puede moderar
🔐 Seguridad
Sesiones admin en localStorage con verificación en cada ruta. Contraseñas nunca en claro en UI (solo en email de bienvenida). Auditoría de todas las acciones admin.
⚡ Rendimiento
Carga de datos con React Query. Paginación en listados (100-500 registros). Imágenes optimizadas antes de almacenar.
📱 Responsividad
Diseño responsive para escritorio, tablet y móvil. Sidebar colapsable en móvil.
🌍 Internacionalización
Interfaz en español. Contenido de cursos en el idioma que el admin introduzca.
🔍 Auditoría
Todas las acciones de admin quedan registradas en AuditLog (actor, acción, entidad, IP [POR CONFIRMAR]).
📧 Notificaciones
Email automático al crear alumno, al generar credenciales y al completar curso (si está configurado).
💾 Almacenamiento
Archivos (DOCX, imágenes, PDFs) subidos a almacenamiento externo. No se almacenan base64 grandes en BD.
🛡️ Roles
Sistema RBAC con 3 roles admin + 1 rol alumno. Verificación en frontend y backend.
💡 El panel de administración es accesible en la URL principal de la aplicación. Solo los usuarios con rol admin (superadmin, account_manager, support) pueden acceder.
Objetivo: Autenticarse en el panel de gestión.
Prerrequisito: Tener una cuenta AdminUser con estado "active".
Campos del formulario:
⚠️ Si introduces credenciales incorrectas, aparecerá un mensaje de error. Tras varios intentos fallidos, la cuenta puede quedar bloqueada [POR CONFIRMAR límite exacto de intentos].
Si tu cuenta tiene el flag must_change_password = true, al iniciar sesión se mostrará un formulario de cambio de contraseña obligatorio.
🚫 Por seguridad, cierra siempre sesión al terminar, especialmente en ordenadores compartidos.
El dashboard ofrece una visión global de la plataforma en tiempo real.
Cursos Publicados
Número de cursos activos disponibles para alumnos
Alumnos Activos
Alumnos con estado "activo" en la plataforma
Certificados Emitidos
Total de certificados generados históricamente
Empresas Cliente
Número de empresas registradas
Gráficos incluidos:
Acciones rápidas: Nuevo Curso, Gestionar Alumnos, Certificados, Ver Auditoría.
Objetivo: Administrar las empresas clientes a las que se asignan cursos y alumnos. Rol requerido: superadmin, account_manager.
💡 Cada curso y cada alumno se asocia a una empresa cliente. Es obligatorio crear la empresa antes de crear cursos o alumnos.
Los cursos son el núcleo de la plataforma. Cada curso pertenece a una empresa cliente, tiene módulos y lecciones, y puede incluir exámenes, recursos y certificados.
Estados de un curso:
⚠️ Solo los cursos en estado "Publicado" son visibles para los alumnos inscritos.
Ideal para cursos nuevos que se construirán desde cero en el editor.
Convierte un documento Word en un curso estructurado automáticamente.
✅ El parser detecta estilos Heading 1 (→ Módulos), Heading 2 (→ Lecciones), Heading 3 (→ Secciones de contenido) y texto Normal (→ Contenido). Funciona con Word en español (Título 1, Título 2) e inglés (Heading 1, Heading 2).
Preparar el documento DOCX correctamente:
🚫 ❌ NO uses negrita + tamaño de fuente grande para simular títulos. El sistema solo detecta los estilos oficiales de Word, NO el formato visual.
Proceso de importación:
⚠️ Si el documento no tiene estilos configurados, el sistema crea automáticamente un módulo y lección por defecto con todo el contenido. Revisa siempre el resultado en el editor.
La inteligencia artificial crea un curso completo a partir de una descripción temática.
💡 Cuanto más detallada sea la descripción (nivel, duración, perfil del alumno, objetivos), mejor será el resultado generado por la IA.
⚠️ Las inscripciones y certificados del curso original NO se copian. El duplicado siempre empieza como Borrador.
El editor es el corazón de la gestión de contenidos. Permite construir y configurar todos los aspectos de un curso.
Pestañas del editor:
Crear un módulo:
Crear una lección:
💡 El editor pedagógico permite insertar vídeos embebidos de múltiples plataformas sin abandonar la herramienta. Para YouTube, pega simplemente la URL del vídeo.
Publicar un curso:
🚫 Solo publica un curso cuando el contenido esté completo y revisado. Los alumnos inscritos verán el estado actualizado inmediatamente.
Objetivo: Crear y administrar las cuentas de los alumnos, asignar cursos y gestionar credenciales de acceso.
⚠️ Los alumnos NO se registran solos. Solo los administradores crean cuentas de alumno. Al crear, se genera automáticamente una contraseña y se envía por email.
🚫 Guarda la contraseña generada en el momento. Por seguridad, no se vuelve a mostrar. Si se pierde, genera una nueva credencial desde el menú del alumno.
Para importar múltiples alumnos a la vez.
email, name, surname, company_name, phone, department💡 La columna company_name debe coincidir exactamente (incluyendo mayúsculas) con el nombre de una empresa ya registrada en la plataforma.
Los exámenes pueden ser de módulo (tras completar un módulo) o finales (al completar el curso). Pueden crearse manualmente o generarse con IA.
⚠️ Los exámenes en estado "Borrador" no son visibles para los alumnos. Actívalos solo cuando estén completamente revisados.
Los certificados se emiten automáticamente al completar un curso. Cada certificado tiene un número único y código de verificación.
🚫 Revocar un certificado es irreversible. El alumno ya no podrá descargarlo. Se guarda registro en auditoría.
Los foros permiten la comunicación entre alumnos y administradores dentro de cada curso. Deben estar habilitados en la configuración del curso (forum_enabled = true).
💡 [POR CONFIRMAR: ¿Los administradores reciben notificación cuando se crea un nuevo hilo? ¿Existe moderación automática?]
Los alumnos pueden enviar archivos de práctica que el administrador revisa y califica. Se habilitan en la configuración del curso (accepts_practices = true).
Registro inmutable de todas las acciones realizadas en la plataforma. Solo accesible para superadmin y soporte.
Solo el superadmin puede gestionar las cuentas de otros administradores.
[POR CONFIRMAR el contenido exacto de esta sección. Basándonos en la arquitectura, puede incluir: configuración de email, integraciones externas, ajustes de seguridad globales, branding por defecto.]
💡 El portal del alumno es una aplicación independiente. Los alumnos acceden a través de la URL del campus (CampusLogin), nunca por el panel de administración.
Prerrequisito: Tener una cuenta de alumno creada por el administrador y haber recibido las credenciales por email.
⚠️ Si no recuerdas tu contraseña, contacta con tu responsable de formación para que el administrador genere nuevas credenciales. No hay opción de "olvidé mi contraseña" automática.
Tu panel personal muestra un resumen de tu actividad formativa.
Mis cursos
Número total de cursos y completados
Progreso medio
Porcentaje promedio de avance en todos tus cursos
Tiempo de formación
Minutos u horas dedicados al aprendizaje
Notificaciones
Avisos importantes del administrador
El dashboard también muestra: Continuar aprendiendo (enlace al último punto donde dejaste el curso), Exámenes pendientes, y los cursos en progreso.
El visor de curso te permite acceder al contenido de forma estructurada y registrar tu progreso.
💡 Si el curso tiene examen final habilitado, al finalizar las lecciones se te redirigirá a la sección de exámenes en lugar de emitir el certificado directamente.
Recursos del curso:
En el panel lateral encontrarás los archivos de recursos del curso (PDFs, guías, plantillas). Haz clic para descargarlos.
Los exámenes están disponibles una vez completado el 100% del contenido del curso.
⚠️ Una vez iniciado el examen, el temporizador no se detiene. Asegúrate de tener tiempo suficiente antes de comenzar.
💡 Si suspendes, puedes volver a intentarlo. El número máximo de intentos lo fija el administrador (habitualmente 3). Tras agotar los intentos, contacta con tu responsable.
✅ Cada certificado es único e infalsificable. El código de verificación puede usarse para comprobar la autenticidad del certificado en el sistema.
Foro (si está habilitado en el curso):
Soporte:
Accede a "Soporte" desde el menú lateral para contactar con el equipo de administración. [POR CONFIRMAR: ¿formulario de contacto, chat, email?]
❓ No puedo iniciar sesión como administrador
Verifica que estás usando la URL correcta del panel admin (no la del campus alumno). Confirma que las credenciales son correctas. Si el error persiste, el superadmin debe verificar que tu cuenta tiene estado "active".
❓ El alumno no puede entrar al campus
Comprueba que el alumno tiene estado "Activo" (no Suspendido ni Pendiente). Verifica que la contraseña es la generada más recientemente. Si el alumno tiene varias credenciales, la última generada es la válida. Genera una nueva contraseña desde Gestión de Alumnos → Generar credencial.
❓ El examen no aparece disponible para el alumno
El examen debe estar en estado "Activo" (no Borrador). El alumno debe tener el 100% del curso completado. Verifica en el editor que exam_settings tiene final_exam_enabled = true.
❓ La importación DOCX crea módulos vacíos (sin lecciones)
El documento no tiene el estilo Heading 2 (Título 2) aplicado a las lecciones. Abre el DOCX en Word, selecciona cada título de lección y aplica el estilo "Título 2" desde el panel de estilos (Vista → Panel de navegación para verificar la estructura). NO uses negrita manual.
❓ La IA no genera el examen correctamente
El curso debe tener contenido suficiente en las lecciones (mínimo 200-300 palabras de contenido total). Reduce el número de preguntas solicitadas si el contenido es corto. Prueba con "Análisis IA" en lugar de "Copia Textual".
❓ El alumno no recibe el email de bienvenida
Revisa que el email no cayó en spam/correo no deseado. Verifica que el email introducido al crear el alumno es correcto. Desde el diálogo de credenciales, usa el botón "Enviar por email al alumno" para reenviar.
❓ El certificado no se genera al finalizar el curso
Verifica que certificate_enabled = true en la configuración del curso. Si hay un examen final, el alumno debe superarlo primero. Revisa que el progreso del alumno es realmente 100% en todos los módulos.
❓ El contenido del curso no se muestra correctamente (vídeos, imágenes)
Los vídeos de YouTube/Vimeo requieren conexión a internet. Los vídeos de Google Drive requieren que el archivo tenga permiso "cualquier persona con el enlace puede ver". Las imágenes base64 muy grandes pueden causar lentitud; es preferible subirlas como archivos.
🚨 Riesgos identificados para el cliente
| Versión | Fecha | Cambios | Autor |
|---|---|---|---|
| v1.0 | Febrero 2026 | Versión inicial. Inventario completo, especificaciones FR/NFR, manuales Admin y Alumno, glosario y checklist. | Base44 AI |
| v1.1 | [PENDIENTE] | Insertar capturas de pantalla reales. Resolver ítems [POR CONFIRMAR]. | — |
📋 Instrucciones de exportación a PDF