Note: You are currently viewing documentation for Moodle 2.2. Up-to-date documentation for the latest stable version is available here: Community hub.

Development:Community hub

From MoodleDocs

Template:Moodle 2.0

This page describes the "Moodle Community Hub" project, which consists of several new features in Moodle 2.0. The specification is mostly functional, though some technical specs are included where necessary (identified in blue).

The tracker issue for this project is MDL-18580.

Goals and rationale

The goals of the Community hub project are:

  1. to allow educators to find and join communities of practice around the world. Such communities (or "hubs") could be subject or region-oriented, allowing teachers to easily associate with their peers on a long-term basis.
  2. to make it easy for educators to find and download course templates from other people. This will help educators share and identify examples of best practice in online pedagogy and hopefully improve the average quality of online courses.

Overview

The solution consists of several parts in Moodle.

  • an open directory of registered community sites and courses on directory.moodle.org
  • a new block in Moodle 2.0 to search this directory to find courses/hubs to join
  • new repository plugins in Moodle 2.0 to download and restore courses from registered hubs


Community.png

Requirement and User Interfaces

  • Moodle.org directory with web and Rest interface
  • hub block: add hub and connect to Hub
  • template block: search for course/activities template, download and share them

Moodle.org directory

A new directory system (directory.moodle.org) will allow you to browse/search the available courses/hubs around the world, via two interfaces. Both interfaces will provide the same data.

Web interface

A web interface, with clickable links to the sites so that users can log in manually. Webinterface.png

In this interface the user can see:

  • a browser displaying the standard tag set. Once you open a tag folder, the sub folder display course, order by rating and sponsor. This browser is displayed by default. It is not display as a result of a search.
  • course title, course description, course picture, course price, course rating, Moodle site name, course details (number of quizz, of lessons, of students)

From this interface the users can:

  • search for a term
  • browse a list of course from standard tag set
  • open a course in a new tab ("try" operation) - this should be available only for course with guest access ? We also could display the HTML version for private course?
  • download the course (special course format) This operation is available only if an download url has been set. In order to set i up, the teacher needs to select the Export course template operation into the course.
  • give a rating to the course

The rating system will be a five star rating. An user can only give rating to the course if he's logged as user in Moodle.org. Should we make a difference between teacher ratings and student ratings?

Avaibility: run a cron script every 150 hours (so day and time change) that check if the course is online. If the last good ping is upper to 150, flag the course and doesn't display it. If the last good ping is upper to 720 (a month), delete the course from the directory database.

Web service interface

A REST-based web services interface, designed to be used by other systems (eg Moodle sites) directly.

This should mainly have a search function:
params: string search, array language, array cost, array Moodle site (it's a url), array included activity type (forum, resource, database, lesson, quizz)

Community management

New registration form in Moodle

Currentregistrationform.jpeg
The above existing registration form can be extended so that admins can choose to send in more info about their sites to the directory, including:

  1. Site details
    1. Site name
    2. Site description
    3. URL
    4. Physical address
    5. Site manager (name, email, phone)
    6. Contact form yes/no?
    7. Mnet/WS information, enough to let a teacher connect to the site using Mnet 2.0
  2. Lists of courses, each one with: All the following should be set into the course settings page?
    1. Name
    2. Description
    3. Tags
      1. Standard (mathematics, physics, biology) Always displayed, translatable etc define them
      2. User (stuff, curtinuni, jeromesstuff etc) Not displayed for browsing, but searchable
      3. Metadata standard (Dublic core? LOM?) choose one, maybe the simpliest
    4. Country code (AU, FR etc) probably a Moodle function return the list
    5. Region/state (based on list) probably a Moodle function return the list
    6. Language probably a Moodle function return the list
    7. Availability (public/private)
    8. Cost (and currency)
    9. Download link: direct URL to Moodle download script or moodle.org cache or somewhere else
    10. Audience: educators / students / admins this is static
    11. Educational level being discussed (for educators audience only) Tertiary, secondary, primary, government, etc define them
  3. Mnet registration details, enough to let someone else log in to this site

Moodle will automatically inform directory.moodle.org later when this information is updated. Moodle.org will possibly send a heartbeat ping every week or so (so that we can delete Moodle sites that miss two weeks or so).

Registrationform.png

Technical information about the Send Registration button: once the admin click on the "Send Registration" button the registration is sent to Moodle.org. All courses flagged as "Publish" are sent with their full details (name, description, standard tags, specific tags, metadata, country code, region/state, language, avaibility, cost, download url, audience, educational level)

Community block

Every course will have a "Community" button (for teachers mostly) that links to a script in Moodle that uses the web services interface to search/browse available courses. The idea behind doing it this way is so that the script can do whatever that current version of Moodle can handle, rather than having the server generate pages that might not work.

Community block is displayed on any page for any user. It is personal to the user.

Requires:

  1. Add a new link to search for courses/activities, with a new capability to view it (default on for teachers, not students)
  2. Add a new Moodle script to browse/search hubs (using web services to call Moodle.org), and join sites if Mnet is all available, otherwise just link to courses for manual authentication/enrolment
  3. Public Mnet sites in "hub mode" should allow immediate single-sign-on (even if admins aren't involved?)

Adding a community

Once the user click on Add operation, he will browse for course on a interfacte similar to the Moodle.org directory. He can choose to add the course to the community block. A direct link to the course will appear into the community block. Courses are listed by Moodle site into the community block.
The link should be a simple link if mnet is not activated
Sort out technical issue for mnet link: how do we detect mnet support? how do we set it up?

Blocktemplate.png

Download, Share course template

Course Template block

Coursetemplateblock.png

Course template block will have several buttons:

  • EXPORT: publish entire course (Moodle Backup minus userdata) as a course template to a Moodle Hub (Portfolio API)
  • IMPORT: find/install a course template from a Hub or from another course on same site (Repository API)
  • capture the entire course as HTML and export as a web site (Portfolio API)
  • publish/update description of this course in the Moodle.org directory (admins only)

Import a course template

Courses and other places in Moodle have a "Search for template..." button, which pulls up the normal file picker to look for template files.

A repository instance called "Import course templates" allows access to all configure directories and Hubs (based on what is configured).

This includes:

  • Searching the Moodle.org Directory for downloadable courses (only).
  • Searching configured hubs for downloadable courses.

This will require:

  1. Special new file types for Moodle files eg .mbkup.zip .mforumbkup.zip
  2. Special repository plugin in the client Moodle that displays a nice interface in an iframe, based on data retrieved via mnet services from the remote Moodle.
  3. Special module (activity module?) in the server Moodle that manages uploaded files (where? how?) with ratings, comments, tagging, workflow etc.
  4. Course page to unpack returned file and "restore" it to the current course.

Search course800.png

It apparently would be too difficult and end up too much bug to display all these controls into the file picker (mostly using javascript). It probably better to use an iframe into the file picker displaying these controls. Once the user ends up to press the doanload button, the iframe tells the file picker what file has been choosen. This will probably not work in HTTPS... better look needed into this technical specs...

Publish your course template as a Hub

In your course setting you should have option letting you share this course. By sharing at least one course, your Moodle site become a Hub if your Moodle site is registered into Moodle,org directory. Your share course will be search-able and download-able into the file picker.

Publishtemplate.png
The above picture should only be a part of the course settings page. An anchor to this section has to be set, and the "Publish" link is linked to this anchor.

Export your course template

course template block has a "Export.." button which calls standard portfolio interface. It will be possible to push the course as a zip to the external system.

We also want the possibility to export into the Hub previously added. Mnet config need to be setup on the two sites (the peer are set automatically)

There should be two different kinds of exportable file:

  • A course backup zip file that can be restored into a course
  • A HTML preview zip file in order to give a first look to someone else. All links should be removed (they should now link to the same page) We could go through activity pages, only one level down.

Use Cases

See also