Datos del proyecto

El Aula Virtual de Español (AVE) es un entorno de aprendizaje en Internet creado por el Instituto Cervantes para la enseñanza del español como lengua extranjera y para impartir cursos de formación de profesores.

Ficha técnica

Descripción del proyecto

El Aula Virtual de Español es la plataforma de eLearning del Instituto Cervantes (IC), para la enseñanza del español en el mundo a través de Internet, así como de los cursos propios de IC. Actualmente, la plataforma da servicio a más de 130 000 usuarios mensuales y ha superado el 1 000 000 de páginas vistas al mes.

La plataforma consta de 2 aplicaciones web y un API para integración de aplicaciones externas:

  • Herramienta de Administración: Para la gestión administrativa de los alumnos y centros participantes.

  • Campus Virtual: Portal de eLearning donde se alojan los materiales didácticos y las herramientas de comunicación integradas.

  • API REST: API para la comunicación con apps de terceros, como gadgets de iGoogle que se desarrollaron en su momento.

Con respecto a los contenidos del material didáctico:

  • Se desarrollan más de 3.000 actividades multimedia, con cerca de 7.000 pantallas interactivas.

  • La plataforma soporta el estándar SCORM y los materiales también se generan siguiendo dicho estándar.

Se desarrollan 3 versiones de la plataforma:

  • v1.0: ASP Classic, focalizada en la gestión de contenidos.

  • v2.0: ASP.Net WebForms: Fortalecimiento de las capacidades eLearning e integración con SCORM.

  • v3.0: ASP.NET MVC 3: rediseño de la arquitectura para escalabilidad y potencia.

Responsabilidades y tareas

Este ha sido el proyecto más longevo en el que he trabajado, por lo que ha supuesto la mayor parte de mi experiencia profesional, que podemos dividir en tres etapas:

2000 - 2002: Desarrollador multimedia

  • En los inicios del proyecto, nos centramos en el desarrollo de actividades multimedia mediante Macromedia Authorware, llegando a implementar al final del proyecto más de 3.000 materiales diferentes, con cerca de 7.000 pantallas interactivas.

  • Todo el material se presenta al usuario en la versión 1.0 del Campus Virtual del Instituto Cervantes.

  • Paralelamente, para gestionar el volumen ingente de material a desarrollar, diseñamos una Intranet para la gestión de la producción, que controla todo el proceso, desde la llegada de los guiones en texto, hasta la subida a producción de la actividad terminada, gestionando todas las tareas intermedias y sus responsables. Me encargo del diseño, análisis e implementación de dicha Intranet.

2003 - 2008: Lead developer

  • En esta segunda fase, asumo la responsabilidad técnica en la ejecución del proyecto, durante la cual se aborda el desarrollo de la versión 2.0 del Campus Virtual, más potente y completo que la anterior incluyendo estándares de eLearning como SCORM o IMS-CP, que nos permiten importar y exportar contenidos desde y hacia otras plataformas.

  • Igualmente, me encargo de la profesionalización de la arquitectura de desarrollo del equipo, implantando servicios hoy imprescindibles como un Control de Versiones (CVS y luego SVN), un Servidor de Integración Contínua (TeamCity), Bugtracker y un Gestor de proyectos con Timetracking.

2009 - 2011: Lead developer

  • Finalizado el Máster en desarrollo de aplicaciones y Servicios Web, en 2008, decido implantar los nuevos conocimientos en el proyecto por lo que iniciamos una migración a tecnología ASP.Net, primero en WebForms, durante la v2.0 de la plataforma, y finalmente a MVC 3 y 4 para el desarrollo de la versión 3.0, la cual obtiene una arquitectura más robusta y escalable que su predecesora, además de desarrollar una API para las interacciones con aplicaciones de terceros.

  • Trabajo en el diseño de la arquitectura web basada en el modelo MVC, incluyendo patrones de diseño como "Dependency Injection", con el fin de obtener mayor estabilidad, mantenibilidad, robustez y bajo acoplamiento entre los sistemas desarrollados. Igualmente, me encargo de definir las líneas principales en el desarrollo de los proyectos, así como decidir las convenciones de código a utilizar y las metodologías de trabajo correspondientes a seguir por el equipo, con el fin de aumentar la productividad y reducir el índice de errores humanos.

  • Finalmente, con el objetivo de la productividad y la optimización en mente, me encargo del desarrollo de un motor de generación de código basado en plantillas T4 a partir de modelos de clases UML en Visual Studio 2010/12/13, que es capaz de generar las tres capas de la aplicación de Backend de un módulo definido (Datos, Negocio y DTO), los "stored procedures" en SQL necesarios para implementar el modelo CRUD base de dicho módulo y los tests unitarios mínimos para probar el módulo.

  • Igualmente, para la capa de Frontend-UI, trabajo en el desarrollo de plantillas de scaffolding para MVC 3/4 para generar la capa MVC (Modelo, Vistas y Controlador) de un módulo concreto que implementa por defecto el CRUD.

Enero de 2012 – Marzo de 2012: Director Técnico

  • Finalmente, se me encarga la dirección del proyecto en sus tres últimos meses de desarrollo, con el objetivo de cerrar el proyecto y hacer entrega al cliente de todo el código y documentación funcional y técnica elaborada.

Tecnologías

Macromedia Authorware Adobe Flash ASP Classic HTML CSS Javascript ASP.Net Webforms ASP.Net MVC 3 C# UML XML SCORM IMS-CP Java applets GWT XMPP Openfire Windows 2000 - 2008 SQL Server 2000 - 2008 SQL Stored Procedures SVN Nuget SymbolSource TeamCity