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