Thursday, 22 September 2011

Bring OpenSocial gadgets to Moodle (updated)


We present here a plugin that allows to bring OpenSocial gadgets into Moodle. OpenSocial gadgets are rendered via Apache Shindig (extension of version 2.0 that supports Spaces).

Moodle is a Learning Management System used in many Educational Institutions (Universities) to manage courses. It is a plugin based PHP application that can be extended by installing additional modules. These modules have to be installed on a Moodle server by a system administrator. The Moodle view usually consists of a main center area and a rather narrow right column with blocks. The center area normally contains main resources, such as, wiki, forum, lesson, quiz, etc. The right block contains some helper plugins, such as, calendar, upcoming events, latest news, recent activity, etc. These are to extend the functionality of the main page.

There are two different OpenSocial plugins for moodle. The first one (shindig-moodle-mod) adds a new module to Moodle. It is very similar to pages in moodle, however in addition, OpenSocial gadgets can be specified. Once it is installed, a teacher can choose a "Widget space" to be added to the course and specify OpenSocial gadgets for it. The teacher can choose whether 1,2,3 column view should be used for gadgets (Fig. 1).
Fig. 1

The resulting outcome is the iGoogle similar view where students can work with gadgets (Fig. 2)
Fig. 2


The second plugin (shindig-moodle-block) adds a new block to Moodle. Teacher can add OpenSocial gadgets to the right column for already existing in Moodle wiki pages, lessons, forums, etc. (Fig. 3)
Fig. 3


One of the main benefits is that the big pool of OpenSocial gadgets can be used by teachers. Thus, once the OpenSocial plugins are installed in Moodle, a teacher can extend the functionality of Moodle without bothering system administrators with plugins installation. The teacher can add and remove gadgets easily and even can write her own ones. The plugins greatly improve the flexibility in choosing the resources and applications for the course specifics. OpenSocial gadgets can be found in the open widget repositories, such as, Role Widget Store, iGoogle Directory, etc.

In addition to reuse of applications existing in the Cloud and flexibility in choosing applications for the course, contextual gadgets and OpenSocial API are the other additional benefits.

Space extension allows gadgets to adapt to a specific context. For example, wiki gadget saves data
for a course and manages access to itself only by people engaged in this course. The same wiki gadget will behave differently being added to another course (different wiki history and different people to access it). Such space extension is already used in production in Graaasp and planned in Apache RAVE project.

OpenSocial API brings the standard way to retrieve and exchange social information between different Moodle installations and other social networks, that improves data portability and interoperability.

Plugins work for new version of Moodle 2.1. It should work for Moodle 2.0, though it was not tested. The installation instructions and source code can be found at github:
OpenSocial Moodle module (https://github.com/vohtaski/shindig-moodle-mod)
OpenSocial Moodle block (https://github.com/vohtaski/shindig-moodle-block)

This plugin was developed within the ROLE Integrated Project and is already used in 5 courses at Shanghai Jiao Tong University.

Thursday, 8 September 2011

Crowd (collaborative) translation Rails plugin.


This plugin is to add collaborative language translation (also known as crowd translation) functionality to your site!

If you use several languages, you can ask your users to help you to translate your web application into other languages (crowd translation). This plugin helps you to manage this process. All installation instructions and the source code can be found at github: crowd-translate.

When you manage your languages you normally have parametrized strings pairs (key-translation) "login_required":"Login required for this action." Then, depending on the current language, string "login_required" will be substitued by either english or russian or something else.

This plugin allows to keep track of key-translation pairs and users can provide their own translation for different languages in a collaborative way. It helps you to generate the resulting language files for languages you use. You also have a rather flexible rights management - you can specify who is able to add translations and who is not.

See below for screenshots, small howto and explanations. If you have any questions, post comments here or on github.

Statistics page
Translation interface


Translation Howto

We have four basic statuses of every string to translate.

untranslated - No human translation is done for this string
needs review - String was translated but approval is required by admin
reviewed - String translation is approved and ready to be used in Yoursite
improvement - An improvement or errors fix was added for the already reviewed string and waits for approval by admin.

Automatic machine translation

Untranslated strings have an automatic machine translation. Change it if appropriately or leave it if it is correct, then submit the string translation.

Reviewers and ordinary translators

If you are a reviewer, your changes will not require confirmation and become 'reviewed' as soon as you submit them. If you are not a reviewer, your changes will have a status 'needs_review' and will require confirmation by admin. We will grant you reviewer right, once we are sure that you are serious about this work.

Statistics

On the 'View stats' page you can see how many sentences are there for every language: how many untranslated, reviewed, etc. You can directly jump to specific translation page from the statistics page.

Notifications

If you set notifications to "Yes" for a specific language, then when new untranslated strings are added to this language set, you will receive a notification by email.

Search

You can search for a keywords in a translation set for specific language.

Bring OpenSocial gadgets to Moodle.

I have developed a plugin for Moodle that allows to add OpenSocial gadgets. OpenSocial gadgets are rendered via Apache Shindig (extension of version 2.0) in an iGoogle similar fashion.

Plugin works for new version of Moodle 2.1. The installation instructions and source code can be found at github: moodle-shindig-mod.

The plugin adds a new module to shindig. It is very similar to pages in moodle, however in addition,
OpenSocial gadgets can be specified. Once it is installed, a teacher can choose a "Widget space" to be added to the course and specify OpenSocial gadgets for it. The teacher can decide whether 1,2,3 column view is used for gadgets.

Widget space creation


The resulting outcome is the iGoogle similar view where students can work with gadgets.

Widget space view


Hope it is useful!