Sistema de gamificación completo para plataformas educativas
Desarrollado desde cero por David Conde Gutierrez
EduHubRPG externaliza la gamificación de plataformas educativas (como Moodle) añadiendo elementos de videojuegos RPG: niveles, experiencia, logros, items virtuales... para que estudiar sea menos aburrido.
Al estar externalizado, se tiene mas flexibilidad a la hora de añadir elementos o módificar los existentes conforme a las necesidades que tengamos.
El proyecto esta en desarrollo haciendo uso de asistentes de código (Cursor principalmente), debido a la facilidad y rapidez de implementación.
Todos los cursos que he hecho en plataformas de formación online se ceñían a sistemas de puntuaciones del año de la tana que no motivaban al usuario más allá de conseguir un diploma/certificado.
Añadiéndole el elemento RPG, conseguimos aumentar el % de finalización de los usuarios en los cursos, ya sea motivados por el sentimiento de gratificación de obtener una recompensa útil tras un duro esfuerzo o por el ansia de complecionismo.
La idea surgió de la frustración de ver cómo la educación online se había quedado estancada en interfaces aburridas y sistemas de recompensas que no conectaban con los usuarios. Los videojuegos pueden mantener a la gente enganchada durante horas (y me apasionan), asi que se me ocurrió fusionar ambas cosas.
|
|
- Interfaz 3D - Arrastrado de tarjetas con físicas realistas (componente de ReactBits: https://reactbits.dev/)
- Sistema de autenticación - Lee directamente de Moodle para identificar al usuario y sus avances. Accede a cualquier dato al que se le dé permiso en el web service.
- Dashboard - UI con animaciones (por pulir)
- Sincronización - Consulta el LMS al acceder y actualiza la base de datos solo si detecta cambios en los datos del usuario
- Migraciones - Sistema automatizado con logs detallados para cada statement SQL ejecutado (desarrollado con Cursor)
- Responsive - Funciona en cualquier dispositivo
- Animaciones - GSAP para efectos
- Sistema de items, tienda y crafteo - Stash y recompensas virtuales, tienda para venta/compra, mejora y crafteo de items de la misma rareza
- Leaderboards - Rankings entre estudiantes de la plataforma (se planea que sea de participación opcional para la gente menos competitiva)
- Sistema de misiones - Objetivos dinámicos que añadan metas a corto/medio y largo plazo para asegurar la permanencia del estudiante.
- Analytics - Métricas visuales para gestores en una dashboard adaptada a necesidades realistas.
- Persistencia - Datos de gamificación persistentes aun que se desmatricule al usuario
- Cálculo - Basado en progreso real de los cursos activos del usuario (gestionado por estado is_active:true/false en DB).
- Sistema de EXP (tremendo dolor de cabeza) - Fórmula matemática para escalado progresivo (no se pierde exp). Ratio de 30 puntos cada 10% de curso. Actualmente solo hay 5 niveles.
- Sincronización - Todo se actualiza automáticamente en cada login del sistema.
- React 18.2.0 con TypeScript
- Three.js 3D
- GSAP animaciones
- TailwindCSS responsividad
- PostgreSQL base de datos
- Migraciones automatizadas a través de script por operatividad
- Funciones y triggers personalizados
- Moodle API para sincronización
- Autenticación bidireccional
- Validación de datos automática
- Kenney UI Assets - Algunos elementos de interfaz y gráficos (https://kenney.nl/)
- Node.js 18+
- npm o yarn
- Base de datos PostgreSQL (Supabase, por ejemplo: https://supabase.com/)
- Moodle Web Services API o API REST de LMS
# 1. Clona el repo
git clone https://github.com/superpin9899/EduHubRPG.git
# 2. Instala las dependencias
npm install
# 3. Configurar DB
# Crear archivo config.json con creds (AÑADIR config.json a .gitignore):
{
"supabase": {
"url": "https://tu-proyecto.supabase.co",
"serviceKey": "tu-service-key-aqui"
},
"moodle": {
"url": "https://tu-moodle.com",
"token": "tu-token-aqui"
}
}
# 4. Para ejecutar las migraciones
npm run migrate
# 5. Para testing:
npm run devEl proyecto incluye migraciones automáticas que crean todas las tablas necesarias:
-- Tablas principales que se crean automáticamente:
users # Usuarios sincronizados
badges # Logros disponibles
user_badges # Logros desbloqueados
points_history # Historial de puntos
course_progress # Progreso en cursosEl sistema incluye 6 migraciones que DEBEN ejecutarse en orden secuencial:
001_test_connection.sql- Verifica que la conexión de cursor a la base de datos funciona002_gamification_system.sql- Crea las tablas principales del sistema de gamificación003_functions_and_triggers.sql- Implementa funciones y triggers para el cálculo automático de puntos004_add_is_active_column.sql- Añade columnais_activea la tablausers005_add_is_active_to_course_progress.sql- Añade columnais_activea la tablacourse_progress006_update_exp_calculation_logic.sql- IMPORTANTE: Arregla un bug crítico derivado de la migración 003
CRÍTICO: La migración 006 corrige un error en la lógica de cálculo de experiencia que se introdujo en la migración 003. Es fundamental ejecutar todas las migraciones en orden secuencial para evitar dolores de cabeza.
- Intuitivo desde tu plataforma educativa (Integrable via <iframe>)
- Navegación 3D arrastrando tarjetas
- Gamificación del aprendizaje con puntos y niveles
- Progreso visual con animaciones retro
- Experiencia inmersiva que motiva a seguir aprendiendo
- Integración transparente, sencilla y segura con tu plataforma existente (solo lee)
- Color principal:
#2563eb(Azul) - Fondo: Blanco puro
El proyecto lo he creado porque me gusta programar y así practico, por lo que, básicamente, puedes hacer lo que quieras con él:
- Usarlo en proyectos comerciales
- Modificarlo a tu gusto
- Distribuirlo libremente
- Meterle clone y crear tu propia versión
Solo pido una cosa: Si lo usas, nunca viene mal algún consejo o mejora. No cuesta nada y me sirve para mejorar.