Skip to content

ISCOUTB/student_path

Repository files navigation

Bloque Mapa de Identidad (Moodle)

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.

Contenido


Funcionalidades

Para estudiantes

  • Mapa de Identidad Interactivo: Formulario dividido en 4 pilares:
    1. Información Personal: Datos básicos y de programa.
    2. Autodescubrimiento: Reflexión sobre fortalezas, debilidades, áreas vocacionales y habilidades socioemocionales.
    3. Metas SMART: Definición guiada de objetivos a corto, mediano y largo plazo.
    4. 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.

Para docentes / administradores

  • 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.

Recorrido Visual

1. Experiencia 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".

Invitación al Mapa

Si el estudiante ya ha avanzado previamente, el bloque muestra el progreso actual e invita a completar.

Progreso en el Bloque

Una vez completado, el estado cambia a "Completado", permitiendo ver o editar la información existente.

Bloque Completado

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.

Formulario Mapa de Identidad

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:

  1. 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.

Alerta Nuevo Semestre 1

  1. 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.

Alerta Nuevo Semestre 2

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.

Historial PC Historial Móvil

2. Experiencia del Profesor / Administrador

Vista de Bloque Docente

El profesor tiene acceso rápido a estadísticas y panel de administración desde el mismo bloque.

Bloque Profesor

Panel de Administración

Ofrece un resumen general del avance del grupo y progreso por test.

Panel Admin 1

Muestra la lista de estudiantes matriculados, su estado con respecto al Mapa de Identidad y opciones para ver detalles.

Panel Admin 2

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.

Tarjeta Expandida

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 Learning Style

Overlay de Test de Personalidad:

Overlay Personalidad

Overlay de Orientación Vocacional (CHASIDE):

Overlay CHASIDE

Overlay de Inteligencia Emocional (TMMS-24):

Overlay TMMS24

Overlay del Mapa de Identidad del Estudiante:

Overlay Identity Map

Si el estudiante está en progreso, el sistema lo indica claramente.

Overlay En Progreso

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.

Ver Perfil 1
Ver Perfil 2


Sección técnica

1) Arquitectura y Flujo de Datos

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 un test_type y un user_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 history antes de permitir nuevas ediciones, garantizando la inmutabilidad de los registros pasados.

2) Integraciones (Loose Coupling)

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.

3) Modelo de Datos

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.
  • 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.

4) Seguridad y Permisos

El sistema implementa capas de defensa en profundidad:

  • Contexto de Curso: Todas las vistas administrativas (admin_view.php) requieren un courseid válido y verifican la capacidad block/student_path:viewreports en 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_enrolled para 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 mediante sesskey.

Experiencia de Usuario Avanzada

1) Traducción Automática en el Cliente (Chrome Built-in AI)

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.

2) Interfaz Animada y Reactiva

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.

3) Soporte Multilenguaje (i18n)

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.


Instalación

  1. Tener instalados los bloques dependientes (Estilos de Aprendizaje, Personalidad, Orientación Vocacional y Habilidades Socioemocionales)
  2. Descargar el plugin desde las releases del repositorio oficial: https://github.com/ISCOUTB/student_path
  3. En Moodle (como administrador):
    • Ir a Administración del sitio → Extensiones → Instalar plugins.
    • Subir el archivo ZIP.
    • Completar el asistente de instalación.
  4. En un curso, agregar el bloque Mapa de Identidad desde el selector de bloques.

Operación y soporte

Consideraciones de despliegue

  • 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.

Resolución de problemas (rápido)

  • El estudiante no ve el mapa: validar que tenga la capacidad block/student_path:makemap en el contexto del curso.
  • El docente no ve reportes: validar block/student_path:viewreports.
  • El dashboard no carga: revisar que el navegador permita fetch con credenciales y que el sesskey sea válido.

Contribuciones

¡Las contribuciones son bienvenidas! Si deseas mejorar este bloque, por favor sigue estos pasos:

  1. Haz un fork del repositorio.
  2. Crea una nueva rama para tu característica o corrección de errores.
  3. Realiza tus cambios y asegúrate de que todo funcione correctamente.
  4. Envía un pull request describiendo tus cambios.

Equipo de desarrollo

  • 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
Con ❤️ para la Universidad Tecnológica de Bolívar

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •