Integracio de plataformes
Learning Platform Bridge
Panel per migrar i sincronitzar usuaris, cursos i progres des de LearnDash (WordPress) a Moodle via APIs.
Context
Despres de la migracio inicial de LearnDash a Moodle amb l'eina de migracio (pipeline de 6 fases), calia un sistema per mantenir les dues plataformes sincronitzades durant el periode de transicio. Els alumnes seguien fent curs a LearnDash mentre es completava la transicio a Moodle, i el progres havia de ser coherent en ambdues plataformes.
Que fa
Sistema ETL complet que actua com a capa intermedia (pont) entre multiples instal.lacions WordPress amb LearnDash + WooCommerce i una instal.lacio Moodle centralitzada:
- Extraccio via plugin WordPress REST: plugin propi que exposa usuaris, cursos, matricules i progres des de WordPress
- Model canonic propi: unificacio de dades amb deduplicacio per email (usuaris) i slug (cursos)
- Validacio manual amb dry-run: mode preview que mostra qualsevol canvi abans d'executar
- Aplicacio a Moodle via Web Services API: creacio idempotent d'usuaris, cursos i matricules
- Execucio asincrona amb Celery + Redis: tracking de jobs, logs persistents, retry automatic
- Auditoria completa: registre detallat de cada operacio per a debugging i verificacio
Resultats en produccio
- 15.423 registres sincronitzats en 95 segons
- 695 usuaris canonics deduplicats
- 72 cursos canonics
- 1.982 matricules
- 12.218 registres de progres
- 0 conflictes detectats
- 5 usuaris creats exitosament a Moodle produccio amb idempotencia verificada
Dificultats principals
- Diferents APIs i formats: WordPress REST API amb metadades serialitzats vs Moodle Web Services amb tokens
- Deduplicacio d'usuaris: mateixa persona en multiples webs amb IDs diferents
- Progres amb formats diferents: LearnDash emmagatzema progres com JSON en wp_usermeta, Moodle com registres en taules
- Execucio asincrona: sincronitzacio massiva sense bloquejar la interficie
- Risc de perdua de dades: cada sincronitzacio modifica les dues plataformes
Solucions
- Plugin WordPress propi que exposa dades via REST amb format normalitzat
- Model canonic amb deduplicacio per email i logging de qualsevol conflicte
- Celery + Redis per a execucio asincrona amb tracking de jobs i retry automatic
- Mode dry-run que mostra preview de tots els canvis abans d'executar
- Idempotencia total: cada operacio es segura per a re-execucions
Aprenentatges
- La sincronitzacio bidireccional es mes complexa que la migracio unidireccional
- Un panel de validacio manual (dry-run) es imprescindible per a dades criticas
- Celery + Redis es la combinacio correcta per a jobs ETL amb tracking
- La idempotencia s'ha de verificar amb dades reals, no nomes dissenyar-la