Se busca un desarrollador para crear un panel de analíticas de cursos Moodle como una aplicación web independiente. El objetivo principal es proporcionar a administradores, gestores y docentes de Moodle una herramienta externa para consultar información clave de cursos y usuarios, ofreciendo una experiencia más moderna y segura que el panel estándar de Moodle. La aplicación debe garantizar que los tokens y credenciales sensibles no se expongan directamente en el frontend.
La arquitectura propuesta incluye:
Frontend: Desarrollado en React (utilizando Vite para una interfaz moderna y rápida para visualizar datos).
Backend: Implementado en
Node.js (con Express) para actuar como un proxy seguro entre la aplicación y Moodle, gestionando todas las peticiones a la API.
Integración con Moodle Web Services: La conexión con Moodle se realizará utilizando MOODLE_BASE_URL y MOODLE_TOKEN, definidos de forma segura en variables de entorno.
Protección de tokens: Los tokens y configuraciones sensibles se mantendrán ocultos en archivos .env, evitando su exposición en el frontend.
Las funcionalidades principales que debe incluir la aplicación son:
Autenticación y control de acceso: La aplicación no conectará el frontend directamente con Moodle, sino a través del backend para una mayor seguridad.
Dashboards de cursos: Visualización clara de la lista de cursos con su información básica (ID, nombre, fechas, etc.), Usuarios matriculados (estudiantes y profesores), y estadísticas de acceso y progreso.
Reportes de usuarios y calificaciones: Integración con servicios clave de Moodle como core_enrol_get_enrolled_users, core_user_get_course_user_profiles y gradereport_user_get_grade_items.
Interfaz visual: Diseño intuitivo con tarjetas y gráficos que permitan explorar cursos y usuarios de forma visual y rápida.
Seguridad adicional: Implementación de medidas como cors, sanitización de rutas y un proxy seguro para la api de moodle.
PD: el proyecto lo comencé yo, lo tengo subido a un subdominio. Principalmene busco soluciones a nivel seguridad, para que los tokens ni las consultas sean visibles. Luego implementar de forma correcta el sistema de usuarios y roles. Y finalmente agregar algunas funciones a los dashboards.
Delivery term: Not specified