Project data

The Spanish Virtual Classroom (AVE) is an Internet learning environment created by the Cervantes Institute for the teaching of Spanish as a foreign language and to deliver teacher training courses.

Technical details

Project description

The Spanish Virtual Classroom is the Learning Management System from Instituto Cervantes (IC) to teach spanish language all over the world through the Internet, as well as other IC courses. Nowadays, the platform is supporting more than 130 000 users per month and has reached 1 000 000 page views per month.

The platform is composed by 2 web applications and an API for third-party integrations:

  • Management tool: For administrative management of students and participant centers.

  • Virtual Classroom: eLearning application where learning activites are hosted and integrates several communication tools.

  • API REST: API to integrate with third party apps, like iGoogle gadgets, developed ad hoc.

In relation to the contents of the learning materials:

  • More than 3.000 multimedia activities were developed, with circa 7.000 interactive exercises.

  • The platform supports SCORM standard and all the learning objects were created following this standard.

3 different versions of the platform were created:

  • v1.0: ASP Classic, focused on content management.

  • v2.0: ASP.Net WebForms: Strengthening of eLearning capacities and SCORM integration.

  • v3.0: ASP.NET MVC 3: Architecture redesigned to focus on scalability and strength.

Responsabilities and tasks

This has been the longest project I've ever worked on, so it covers most of my professional career, which can be divided in three different stages:

2000 - 2002: Multimedia developer

  • At the begining of the project, we were focused on the development of multimedia learning activities with Macromedia Authorware, getting at the end of the project more than 3.000 different learning objects, and close to 7.000 interactive exercises.

  • All this material is part of the Instituto Cervantes Learning Management System v1.0, "Spanish Virtual Classroom".

  • At the same time, in order to manage the huge number of activities to develop, we designed an Intranet to arrange the whole development process, which takes care of all the workflow, since the arrival of documents and scripts, until the publishing of the activity, managing all the intermediate tasks and their responsible users. I'm in charge of design, analysis and development of this Intranet.

2003 - 2008: Lead developer

  • In this second phase, I take technical responsibility in the project development, during which we address the development of the version 2.0 of the Spanish Virtual Classroom, more powerful and complete than the previous version, and including eLearning standards like SCORM or IMS-CP, which allow the project to import and export contents from and to other learning platforms.

  • At the same time, I take care to professionalize the team development architecture, implanting services like a Version Control System (CVS and then SVN), a Continuous Integration Server (TeamCity), a Bugtracker and a Project Management System with tasks and time tracking.

2009 - 2011: Lead developer

  • Once I ended up my Master in software development and web services, in 2008, I decide to apply the new knowledge adquired in the project, so we begun a migration to ASP.Net technology, first to WebForms, during platform v2.0, and finally to MVC 3 y 4 for the development of version 3.0, which gets a more solid, scalable architecture than its predecessor, besides the development of a Web API to be able to interact with 3rd party applications.

  • I work designing the web architecture based on MVC model, including design patterns like "Dependency Injection", with the aim of getting more con el fin de obtener mayor stability, maintenance, solidity and less coupling among developed systems. I also take the task to define the main project development rules, code conventions and workflow methodologies to be used by the team, with the aim of increased productivity and reduce the human errors rate.

  • Finally, with productivity and optimization in mind, I mke the development of a code generation engine based on T4 tempaltes from UML class models in Visual Studio 2010/12/13, which is able to generate the three Backend layers for a defined module (Data access, Business layer and DTO), the SQL stored procedures needed to implement the CRUD model for the model said, and the minimum unit tests to test them.

  • Also, for the Frontend-UI layer, I work to develop several scaffolding templates for MVC 3/4, that can create the MVC (Models, Views and Controllers) layer for a given module, that implements the default CRUD created in the Backend.

January 2012 – March 2012: Chief Technology Officer

  • Finally, I take responsibility for the project management in its last three months of development, with the aim of closing the tasks and send the client all the documents, source code and important information.

Technologies

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