1 Desarrollo y colaboración con exelearning.net Alumno:Mercedes Cotelo Lois [email protected] Tutor UOC:Gregorio Robles Martínez [email protected] Tutor externo:Antonio Monje Fernández [email protected]
2 Fácil de usar Actividades interactivas Contenidos multimedia Exportación a estándares educativos HTML5, ePub3 Introducción eXeLearning, la herramienta Fácil de usar Contenidos multimedia Crear y compartirHTML5, ePub3 Actividades interactivas Exportar estándares educativos eXeLearning es una herramienta de software libre, que facilita la creación de contenidos educativos on-line sin necesidad de tener grandes conocimientos de HTML, ni programación web
3 Fácil de usar Actividades interactivas Contenidos multimedia Exportación a estándares educativos HTML5, ePub3 Introducción eXeLearning, la herramienta Fácil de usar Contenidos multimedia Crear y compartirHTML5, ePub3 Actividades interactivas Exportar estándares educativos eXeLearning es una herramienta de software libre, que facilita la creación de contenidos educativos on-line sin necesidad de tener grandes conocimientos de HTML, ni programación web
4 Introducción eXeLearning, los contenidos Un paquete eXe es una colección de nodos, a los que se pueden agregar contenidos (iDevices) como campos de texto libre, preguntas de cuestionario, galerías de imágenes, etc. El estilo del documento afecta a los tamaños, colores y posiciones de los contenidos (CSS). Editar Aplicar estiloExportar Aplicar
5 Introducción eXeLearning, la comunidad En 2004, se inicia el desarrollo de eXeLearning, promovida por las Universidades de Auckland, AUT, y Politécnica de Tairawhiti con el apoyo del gobierno neozelandés.eXeLearningUniversidades de Auckland AUTPolitécnica de Tairawhiti En el 2010, desde el INTEF se reaviva el proyecto, creando una nueva comunidad en torno al actual eXeLearning.netINTEFeXeLearning.net exelearning.org 2004 2010 exelearning.net forja.cenatic.es/projects/iteexe
6 Twisted 2.2 + Nevow 0.41 forman un framework para desarrolo web orientado a eventos, asíncrono y con comunicación bidireccional Introducción eXeLearning, la tecnología eXeLearning tiene una arquitectura cliente-servidor. El cliente, 100% web, es una aplicación Javascript que puede ser ejecutada en cualquier navegador. El motor, es un servidor Python que se instala y ejecuta en la máquina del usuario. La interfaz de usuario es una aplicación web multinavegador desarrolada en ExtJS 4.1 El diseño Modelo-Vista-controlador y orientado a eventos de este framework se adapta a la perfección a esta arquitectura La comunicación entre ambos componentes utiliza el conjunto de técnicas conocidas como AJAX
7 Estos estilos podrán ser consultados e instalados desde eXe El repositorio permitirá a los autores subir sus propios estilos, que los editores tendrán que aprobar, para que los demás usuarios los puedan ver y descargar IntroducciónRep. Estilos Repositorio de estilos, objetivo El objetivo de esta tarea es crear en el sitio web oficial del proyecto: exelearning.net, un repositorio de plantillas que puedan ser consultadas e instaladas directamente desde la aplicación eXe Learning
8 IntroducciónRep. Estilos Repositorio de estilos, diccionario de datos La comunicación entre el repositorio exelearning.net y la aplicación cliente eXeLearning, se realiza mediante servicios XML-RPC. Es necesario definir de antemano la estructura de los datos que se intercambiarán.
9 IntroducciónRep. Estilos Repositorio de estilos, el repositorio exelearning.net es un sitio web WordPress. El plugin WordPres eXe Styles, permite la creación, edición y gestión de plantillas. Este mismo plugin expone vía XML-RPC, el método listStyles() que se consulta desde eXe
10 IntroducciónRep. Estilos Repositorio de estilos, servidor En el repositorio se pueden añadir, editar y consultar la lista de estilos disponibles Desde interfaz administrativa, crear/editar estilos 1 2 2 Consultar lista de estilos en sección Descargas Consultar información detallada del estilo 3
11 IntroducciónRep. Estilos Repositorio de estilos, el cliente El evento clic en el botón Styles Repository, inicia la llamada al repositorio para obtener la lista de estilos A su vez, el evento respuesta del repositorio, actualiza la pantalla del usuario.
12 IntroducciónRep. Estilos Repositorio de estilos, el cliente En el cliente, el evento clic en el botón Import style from URL, inicia descarga del fichero ZIP El evento descarga finalizada, inicia la importación del estilo y actualiza la pantalla del usuario.
13 IntroducciónRep. Estilos Repositorio de estilos, cliente Los mismos estilos que están disponibles en el sitio web exelearning.net, se pueden consultar e instalar desde la aplicación eXeLearning Desde gestor de estilos, consultar repositorio 1 Estilo importado con éxito 3 Seleccionar estilo y clic en boltón Importar 2 2
14 IntroducciónRep. EstilosGoogle Drive Exportar a Google Drive, definición Exportar a Google Drive, genera un sitio web completo a partir del paquete eXe y lo sube a la cuenta Drive del usuario como una página web pública Implementado por Google Ya implementado en eXe De nuevo desarrollo Recibir autorización Iniciar proceso autorización Subir ficheros exportados
15 IntroducciónRep. EstilosGoogle Drive Exportar a Google Drive, autorización La primera vez que se exporta un documento a Google Drive, es necesario autorizar a la aplicación Si usuario ha autorizado a la aplicación con anterioridad y tiene sesión abierta en Google, este proceso es inmediato y transparente para el usuario En primer lugar se intenta la autorización sin intervención del usuario, que concluirá con éxito solo si la aplicación ya hubiera sido autorizada El proceso de subida de ficheros necesita el token de autorización para utilizar la API de Google Drive Proceso de autorización con OAuth2 en el lado del cliente, utilizando la librería JavaScript de GoogleOAuth2 en el lado del clientelibrería JavaScript de Google Es necesario registrar la aplicación en la Google Developer Console para poder iniciar el proceso de autorizaciónGoogle Developer Console Se mostrarán al usuario los datos de la aplicación
16 IntroducciónRep. EstilosGoogle Drive Exportar a Google Drive, subida ficheros Para subir el documento eXe a Google Drive, es necesario realizar una exportación como sitio web en local, crear una carpeta pública en el Google Drive y subir los ficheros locales a esa carpeta Crear la carpeta pública son dos llamadas a la API: para crear la carpeta y para asignar permisos Para la subida de ficheros se invoca la API de Google Drive, utilizando las librerías de Google para PythonAPI de Google Drivelibrerías de Google para Python Para generar el sitio web en local se reutilizan los métodos que implementan la exportación a sitio web autocontenido Cadena de llamadas diferidas asíncronas, al recibirse una respuesta se inicia siguiente llamada Actualiza el contenido de la ventana informativa generada con Ext.ux.window.NotificationExt.ux.window.Notification
17 IntroducciónRep. EstilosGoogle Drive Exportar a Google Drive, todo junto Para exportar un documento a Google Drive, menú Archivo > Exportar > Sitio web > Publicar en Google Drive la primera vez se pide autorización, y después el proceso de exportación se completa en segundo plano Iniciar exportación 1 Autorizar aplicación 2 Exportación continúa en segundo plano 3 Exportación completada 4 Mensajes informativos Avisos y errores Enlace a carpeta exportada
18 IntroducciónRep. EstilosGoogle DriveEmpaquetado Distribución a través de PPA en Launchpad Tras realizar un estudio de los requisitos para incluir eXeLearning en los repositorios de Debian, se vió que este objetivo queda fuera del alcance de este proyecto, por lo que se optó por crear y mantener un repositorio personal aprovechando la infraestructura de Launchpad Crear firma GPG Adaptar código fuente Compilar paquete de fuentes Crear paquete de fuentes Copiar paquete todas las distribuciones Instalar repositorio Instalar aplicación Desarrollador LaunchpadUsuario Registrar firma GPG servidores de Ubuntu Subir paquete de fuentes Mantener rama específica en el repositorio del proyecto Equipo de trabajo: https://launchpad.net/~exelearning https://launchpad.net/~exelearning Repositorio personal: https://launchpad.net/~exelearning/+archive/ubuntu/exelearning https://launchpad.net/~exelearning/+archive/ubuntu/exelearning
19 IntroducciónRep. EstilosGoogle DriveEmpaquetadoComunidad Colaboración con la comunidad Este Proyecto de Fin de Máster tiene también como objetivo la colaboración y asistencia a la comunidad en la detección y reparación de bugs, u otras tareas solicitadas por el tutor de prácticas Linea de tiempo generada con Tiki-Toki, disponible en: http://www.tiki-toki.com/timeline/entry/390857/Colaboraciones-con-la-comunidad/http://www.tiki-toki.com/timeline/entry/390857/Colaboraciones-con-la-comunidad/
20 IntroducciónRep. EstilosGoogle DriveEmpaquetadoComunidadConclusiones Repositorio de estilos Exportar a Google Drive Aprovechar funcionalidades del framework, delegar detalles de implementación Twisted, AJAX y llamadas diferidas → programación asíncrona Comunicación entre sistemas: definir estructura de datos primero → puesta en común con comunidadAutorización de aplicaciones con OAuth2, condicionantes de seguridad. Aplicación web necesita dominio propio, aplicación de escritorio necesita ocultar clave secreta Web multilingüe, buscar las herramientas es más fácil que disponer de traductores → Minimizar contenidos traducibles Organizar una secuencia de procesos asíncronos → cadena de llamadas diferidas Empaquetado y distribución Incluir eXe en Debian requiere refactorización de dependencias Launchpad requiere ajustes al sistema de empaquetado para adaptarlo a herramientas disponibles en servidores Coordinación con la comunidad al iniciar tareas, poner en común aspectos de diseño, compartir conocimientos,... Adaptación a nuevos frameworks y patrones de diseño: MVC, programación asíncrona y orientada a eventos Aplicación práctica de conocimientos adquiridos en: descripción formal de funcionalidades, condicionantes legales propios del software libre, herramientas para construcción de software multiplataforma, etc. La realización del Proyecto Fin de Máster en la forma de prácticas externas, me ha permitido colaborar con una comunidad de Software Libre activa, renovando mis conocimientos en tecnologías de desarrollo web y aplicando muchos de los conceptos adquiridos en el Máster de Software Libre