« New server and client available! | Main | Telework Consortium Blog »

November 24, 2006

Moodle integration

One of our customers, NITLE, started a summer of code project last summer. The project's goal was to integrate Marratech into the very popular open source Learning Management System (LMS) called Moodle. The ambition of the project was for students to gather experience in systems integration using extreme programming as a programming method and producing code that is maintainable.

The result is a first prototype integration release. The source code is available on SourceForge and the installation instructions on the moodle web site.

Marratech provided the appropriate server software and technical support. I am happy to report that NITLE needed very little support and did this project by itself for the most part. NITLE used the Marratech API to accomplish the integration.

While it is a prototype, and as such is not ready for prime time, we believe it creates a great base for further work. The source code is under GPL, meaning any adaptations will require you to upload the changes made. We hope that this work will act as a catalyst for further improvements in the plugin.

It was really nice to work with Eric J and Eric H on this and I hope to work with them again!

We like the idea of integration work being open source, as the community can save time and money by improving, adapting and extending what has already been done!

Here is a document sent to me by NITLE to explain the project and future work:






Moodle-Marratech Integration Project
NITLE | National Institute for Technology and Liberal Education
http://nitle.org

Overview of the Project

The goal of the project was to prototype an interface between Moodle and Marratech in the form of a Moodle plug-in and server-side components that would permit Marratech resources to be scheduled and allocated from Moodle. The code communicates from Moodle PHP plugin to Java components (servlets) via HTTP, and the Java code communicates with Marratech via the Java API exposed by the Marratech Manager.

The system developed in the prototype resolves many of the complexities of this issue, including identifying and preventing of conflicts in resource usage (i.e. exceeding the number of licensed seats at any given time), how to integrate with real-world user expectations (for example, configurable “buffer” zones around meeting times to reflect early arrivals and late departures), how to de-allocate resources in the event of unexpected conflicts (i.e. a virtual meeting running over time), logging and activity tracking, and how to invite outsiders (non-Moodle course members) as well as notify and remind users of meeting times. The project also approached these questions with the goal of maintaining Moodle’s approach to user experience.

The code was developed in the summer of 2006 by a group of 10 students from liberal arts colleges that are NITLE participating institutions, and the students were guided by faculty mentors and others. The student development team used the extreme programming methodology to develop the prototype code. The prototype code works in development environments, and is currently undergoing testing before it is used on a production system.

The Future

We hope others see the value of this project and will contribute to it. The current code is only a prototype, and we would be very willing to share our experiences with those who could assist in organizing it into a deployable product.

In reflecting on the prototype, we felt some design features of such a product would be important:

• A pluggable calendar system: the prototype uses the local Moodle calendar, but a more robust system might plug in to other calendar systems. We have noted that many users of Moodle have other calendar systems where Marratech scheduling might also need to appear. We suggest Google Calendar as a potentially valuable initial target for a plug-in, given the robust features, the detailed API access, and strong publication features of Google Calendar.

• The prototype never resolved successfully a protocol for dropped connections to Marratech when reconnecting from Moodle. Such users, for technical reasons, would be counted again for each connection, which could lead to an inaccurate assessment of the seat usage.

• The prototype code requires PHP 5. This is one version above the minimum requirement for Moodle. Rewriting the code to function under PHP4 might be necessary for some production environments

Posted by Serge Lachapelle at November 24, 2006 02:43 PM

Comments

I am working with a telecommnications provider who is using Marratech and would like me to integrate this into the Moodle sites I run for their clients.

What is the status of your project? Is there a beta of this module that can be downloaded? I am very interested in giving this a try and would love to work with you to try this in a working environment.

Posted by: Chick Beckley at February 15, 2007 09:52 PM

The project is external to Marratech and I am sure your participation would be appreciated You can follow its progress at:

http://sourceforge.net/projects/marra-moodle

Posted by: Serge Lachapelle at February 19, 2007 10:37 AM