Migración de datos académicos de SGA-UNL a Moodle con
Python y WebServices
Milton Labada | Universidad Nacional de Loja@miltonlab, [email protected]
Escuela Politénica Nacional, Quito - Ecuador
Antecedentes● Sistema de Gestión Académica UNL:
– Desarrollado con: Python 2.5 + TurboGears 1.0 + Postgresql 8.4
● Biblioteca de Servicios SGAWebServices (Proyecto de Tesis)
● Entorno Virtual de Aprendizaje:
– Moodle 1.9
...la peor solución
y la que no se tomó en cuenta:
1. Descargar la información del SGA en archivos planos2. Cargar la información de archivos planos a Moodle (Incompleta y prácticamente manual)
...la solución inicial
1.Descargar información del SGA en archivos planos2.Instalar un WebService en Moodle que tenga el api para crear información académica.3.Crear un script en Python que use el WebService de Moodle para insertar: Areas, Carreras, Semestres, Paralelos, Materias.
...la solución definitiva
1. Instalar un WebService en Moodle que tenga el api para crear información académica.2. Crear un script en Python que:
a) Se conecte a los WebServices del SGA para extraer la información académica.
b) Se conecte al WebService de Moodle para insertar: Areas, Carreras, Semestres, Paralelos, Materias.
Implementación sga2moodlesga2moodle
Internet
+OK Tech Web ServicesOK Tech Web Services
Scriptsga2moodlesga2moodle
Arquitectura
Implementación sga2moodlesga2moodle
Entindad SGA Entidad Moodle
Oferta Académica (Periodo) Categoria
Area (Academica) Categoria
Carrera Programa (Carrera) Categoria
Modulo (Semestre) Categoria
Paralelo Categoria
Horario Semana (Materia) Curso
Docente Profesor
Estudiante Estudiante
Mapeo SGA - Moodle
Implementación sga2moodlesga2moodle● Web Services SGA utilizados:
– wsinstitucionalwsinstitucional– wsacademicawsacademica– WspersonalWspersonal
● Clases implementadas desde OK Tech WebSerives (wspp):
– categoryDatum– courseDatum– UserDatum
● Modulos python:
– moodsga.pymoodsga.py # Script principal– validadoremail.py # De django.core.validators)– sgaws.cliente.py # Modulo de acceso a los WS SGA– ModelMoodleSGA.py # Mapeador BD intermedia temporal
Implementación sga2moodlesga2moodle● Funcionalidades principales
– load_areas()
– load_carreras()
– load_modulos()
– load_paralelos()
– load_horarios_semana()
– load_users_docentes()
– load_enrol_docente()
– load_users_estudiantes()
– load_enrol_estudiante()
Implementación sga2moodlesga2moodle● Librerías utilizadas:
– * Python 2.7+
– * SQLAlchemy 0.6.8
– * SQLAlchemy-Ext 0.6.8
– * SOAPpy
– * python-yaml
– * python-json