El bloque Mapa de Identidad actúa como un portafolio personal y bitácora de crecimiento para el estudiante. Centraliza información académica, resultados de autodescubrimiento (vocacional, emocional, personalidad) y permite la construcción de un plan de vida mediante metas SMART y planes de acción concretos.
Este repositorio incluye:
- Experiencia de estudiante con formulario de 4 secciones, guardado automático, historial de versiones por semestre.
- Herramientas para docentes con dashboard de seguimiento, visualización de perfiles individuales y overlays de resultados de otros instrumentos psicométricos.
- Funcionalidades
- Recorrido Visual
- Sección técnica
- Instalación
- Operación y soporte
- Contribuciones
- Equipo de desarrollo
- Mapa de Identidad Interactivo: Formulario dividido en 4 pilares:
- Información Personal: Datos básicos y de programa.
- Autodescubrimiento: Reflexión sobre fortalezas, debilidades, áreas vocacionales y habilidades socioemocionales.
- Metas SMART: Definición guiada de objetivos a corto, mediano y largo plazo.
- Plan de Acción: Estrategias concretas para alcanzar las metas propuestas.
- Guardado Automático: Persistencia de datos en tiempo real para evitar pérdida de información.
- Historial de Versiones: Sistema de snapshots que congela el mapa al finalizar un semestre, permitiendo al estudiante ver su evolución en el tiempo (comparativa histórica).
- Alertas de Nuevo Semestre: Notificaciones que invitan a actualizar el mapa al detectar un cambio de periodo académico.
- Dashboard de Curso: Métricas de participación (iniciados, en progreso, completados).
- Gestión de Estudiantes: Tabla con estado de avance y acceso rápido al perfil de cada alumno.
- Overlays de Información: Dentro del Panel de Administración, el docente puede consultar en ventanas emergentes los resultados por cada uno de los tests integrados (Estilos de Aprendizaje, Personalidad, Orientación Vocacional y Habilidades Socioemocionales). Además en la lista de estudiantes en la columna "Progreso del Test", al hacer click en cada uno de los cuadritos, puede ver los resultados o progreso del respectivo estudiante.
- Vista Detallada: Acceso de lectura al mapa completo del estudiante.
Invitación y Acceso desde el Bloque
El estudiante visualiza el estado actual de su mapa desde el bloque lateral. Si nunca lo ha iniciado, se presenta una invitación clara con un botón "Iniciar mapa de Identidad".
Si el estudiante ya ha avanzado previamente, el bloque muestra el progreso actual e invita a completar.
Una vez completado, el estado cambia a "Completado", permitiendo ver o editar la información existente.
Formulario del Mapa de Identidad
Un formulario organizado donde el estudiante reflexiona sobre su identidad. Incluye secciones para datos personales, fortalezas/debilidades (Autodescubrimiento), y planificación de futuro.
Gestión de Periodos y Versiones
El sistema detecta el cambio de semestre. Si el estudiante ingresa en un nuevo periodo académico, recibe notificaciones diferenciadas según su historial en la plataforma:
- Primera renovación: Cuando el estudiante va a generar su segunda versión histórica, se le invita a actualizar sus metas para el nuevo ciclo.
- Trayectoria continua: Si el estudiante ya cuenta con 2 o más versiones en su historial, la alerta reconoce su recorrido acumulado y le invita a seguir construyendo su bitácora de crecimiento.
Historial de Versiones
Tanto en escritorio como en móvil, el estudiante puede consultar sus mapas de semestres anteriores, permitiéndole ver cómo han evolucionado sus metas y autopercepción a lo largo de la carrera.
Vista de Bloque Docente
El profesor tiene acceso rápido a estadísticas y panel de administración desde el mismo bloque.
Panel de Administración
Ofrece un resumen general del avance del grupo y progreso por test.
Muestra la lista de estudiantes matriculados, su estado con respecto al Mapa de Identidad y opciones para ver detalles.
Tarjetas de Estudiante Expandidas
Al seleccionar una tarjeta de la sección "Progreso por Test" en el Panel de Administración, se despliega una vista con sus tres estados (Completado, En Progreso y No Iniciado) y se pueden ver los estudiantes que están en cada uno.
Una característica potente es la capacidad de consultar resultados sin salir de esta vista. El docente puede ver overlays con la información al hacer click en el respectivo nombre del estudiante (Solo disponible en los estados "Completado" y "En Progreso").
Overlay de Estilos de Aprendizaje:
Overlay de Test de Personalidad:
Overlay de Orientación Vocacional (CHASIDE):
Overlay de Inteligencia Emocional (TMMS-24):
Overlay del Mapa de Identidad del Estudiante:
Si el estudiante está en progreso, el sistema lo indica claramente.
Vista Detallada del Perfil
El docente puede acceder a la lectura completa de todos los resultados en cada uno de los test de un estudiante y lo que este ha escrito en su mapa, facilitando la consejería y el acompañamiento tutorial.
El bloque opera bajo un modelo híbrido donde la interfaz principal se renderiza en PHP (view.php, admin_view.php), pero la interactividad (validaciones, overlays, guardado) depende fuertemente de AJAX.
-
Backend de Autoservicio (
ajax_get_test_details.php): Este endpoint actúa como un controlador centralizado para obtener los detalles de cualquier test integrado. Recibe untest_typey unuser_id, realiza rigurosas verificaciones de seguridad "Anti-Gossip" (valida que el solicitante sea profesor y que el estudiante esté matriculado en el mismo curso) y devuelve el HTML pre-renderizado del overlay. Esto permite que el frontend sea ligero, cargando la información pesada solo bajo demanda. -
Sistema de Persistencia (
save_auto.php): El guardado no requiere un botón de "Enviar". Un script detecta inactividad en los campos de texto y envía los datos asíncronamente.- Detección de Completitud: En cada guardado, el servidor verifica si todos los campos obligatorios (Información Personal, Autodescubrimiento, Metas SMART y Planes de Acción) tienen contenido. Si es así, marca el registro como
is_completed = 1. - Lógica de Snapshot: Al guardar, el sistema verifica si el "semestre actual" del servidor difiere del último registrado por el usuario. Si hay discrepancia, congela el estado actual en la tabla
historyantes de permitir nuevas ediciones, garantizando la inmutabilidad de los registros pasados.
- Detección de Completitud: En cada guardado, el servidor verifica si todos los campos obligatorios (Información Personal, Autodescubrimiento, Metas SMART y Planes de Acción) tienen contenido. Si es así, marca el registro como
El bloque está diseñado para coexistir en un ecosistema modular sin dependencias duras que rompan el sistema.
- Detección de Tablas: En lugar de depender de las APIs de los otros plugins, el bloque consulta directamente la base de datos (
$DB->get_record) para verificar la existencia de tablas hermanas (block_learning_style,block_chaside_responses, etc.). - Cálculo de lugares en CHASIDE y TMMS 24: El bloque replica las fórmulas oficiales de puntuación dentro de su propio código, evitando la necesidad de llamar a funciones externas.
El almacenamiento se divide para optimizar el rendimiento y la trazabilidad:
-
block_student_path(Estado "Vivo"):- Índice único por
user. - Almacena el borrador actual editable.
- Campos de texto (
text) para reflexiones largas y metas. - Campos dimensionales normalizados para reportes.
- Índice único por
-
block_student_path_history(Almacenamiento en Frío):- Almacena snapshots JSON completos del estado del mapa en un momento del tiempo.
- Clave compuesta
userid+period(ej. '2025-1'). - Permite reconstruir la vista del estudiante tal cual estaba en semestres pasados sin alterar la estructura actual de la base de datos.
El sistema implementa capas de defensa en profundidad:
- Contexto de Curso: Todas las vistas administrativas (
admin_view.php) requieren uncourseidválido y verifican la capacidadblock/student_path:viewreportsen ese contexto específico. - Sanitización de Salida: Al exportar datos o mostrar nombres, se utiliza
fullname()y funciones de escape de Moodle para prevenir XSS. - Validación de Matrícula: Incluso si un usuario malintencionado adivina una URL de AJAX, el backend verifica
is_enrolledpara asegurar que solo los profesores legítimos del alumno puedan acceder a sus datos sensibles. - CSRF Protection: Todas las llamadas AJAX (
save_auto.php,ajax_get_test_details.php) están protegidas estrictamente mediantesesskey.
El bloque es pionero en el uso de Translator API in Chrome experimental. Esta funcionalidad se aplica específicamente a los campos de texto libre (text-areas) del Mapa de Identidad del estudiante cuando son visualizados por el profesor en:
- Los overlays (ventanas emergentes) dentro del panel de administración.
- La vista de perfil detallado (
view_profile.php).
Cómo funciona:
- El sistema detecta automáticamente el idioma de Moodle que se encuentra del profesor.
- Analiza el texto escrito por el estudiante usando heurísticas inteligentes o la API de detección de IA del navegador.
- Si hay discordancia lingüística (ej. Profesor en inglés revisando a un estudiante que escribió en español), el texto se traduce instantáneamente en el cliente, añadiendo una etiqueta discreta: "Traducido automáticamente".
- Privacidad: Al ejecutarse en el navegador (
self.Translator), los datos sensibles del estudiante nunca abandonan el entorno local. - Degradación Elegante: Si el navegador del usuario no soporta esta tecnología experimental, la interfaz se mantiene intacta mostrando el texto original, asegurando que la experiencia visual y funcional nunca se vea comprometida.
Se ha cuidado cada interacción para garantizar una experiencia moderna:
- Micro-interacciones: Efectos de elevación y escalado al pasar el cursor sobre las tarjetas de estadísticas estadisticas y tests (
.stat-card:hover,.test-card:hover, etc...). - Feedback Visual: Transiciones suaves en barras de progreso y botones.
- Gradientes Semánticos: Uso de gradientes lineales específicos para cada módulo (Amarillo para Orientación Vocacional, Azul para Estilos de Aprendizaje, Verde para Personalidad, Naranja para Habilidades Socioemocionales, Violeta para Mapa de Identidad), ayudando a la rápida identificación visual.
- Diseño Responsive Integral: Tanto la vista del estudiante (formulario del mapa) como el panel de administración del docente se adaptan fluidamente a pantallas móviles, tablets y escritorio, permitiendo el uso del bloque desde cualquier dispositivo.
El bloque es nativamente bilingüe (Español e Inglés). Todos los textos, desde las etiquetas del formulario hasta los mensajes de error AJAX, utilizan el sistema de cadenas de Moodle (get_string), permitiendo la fácil adición de nuevos idiomas en el futuro.
- Tener instalados los bloques dependientes (Estilos de Aprendizaje, Personalidad, Orientación Vocacional y Habilidades Socioemocionales)
- Descargar el plugin desde las releases del repositorio oficial: https://github.com/ISCOUTB/student_path
- En Moodle (como administrador):
- Ir a Administración del sitio → Extensiones → Instalar plugins.
- Subir el archivo ZIP.
- Completar el asistente de instalación.
- En un curso, agregar el bloque Mapa de Identidad desde el selector de bloques.
- Versión de Moodle: Compatible con Moodle 4.0+.
- Versión de PHP: PHP 7.4+ recomendado.
- JavaScript: Requerido para el funcionamiento de los modales y guardado AJAX.
- Integridad de Datos: Si un bloque dependiente es desinstalado, el bloque mostrará errores.
- El estudiante no ve el mapa: validar que tenga la capacidad
block/student_path:makemapen el contexto del curso. - El docente no ve reportes: validar
block/student_path:viewreports. - El dashboard no carga: revisar que el navegador permita
fetchcon credenciales y que elsesskeysea válido.
¡Las contribuciones son bienvenidas! Si deseas mejorar este bloque, por favor sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama para tu característica o corrección de errores.
- Realiza tus cambios y asegúrate de que todo funcione correctamente.
- Envía un pull request describiendo tus cambios.
- Jairo Enrique Serrano Castañeda
- Yuranis Henriquez Núñez
- Isaac David Sánchez Sánchez
- Santiago Andrés Orejuela Cueter
- María Valentina Serna González



















