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: Difference between revisions

From MoodleDocs
Line 68: Line 68:


=== Registration ===
=== Registration ===
The existing registration form will be extended so that admins can choose to send in more info about their sites to the directory.  All courses flagged "Publish" are also sent with their full details.


[[Image:Registrationform.png]]
[[Image:Registrationform.png]]


The existing registration form will be extended so that admins can choose to send in more info about their sites to the directory.  All courses flagged "Publish" are also sent with their full details.


A cron job will be added to Moodle so that each site can automatically inform directory.moodle.org later when course information is updated (if the admin allows it).
A cron job will be added to Moodle so that each site can automatically inform directory.moodle.org later when course information is updated (if the admin allows it).

Revision as of 05:06, 21 May 2009

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

Components

There are three main parts to this project:

Moodle.org directory

A new directory system (hosted at directory.moodle.org) will allow users to browse and search registered courses and hubs around the world. This data is collected from site admins when they register their Moodle site on an "opt-in" basis. Only courses that are marked as being open to outside enrollment will be listed.

Data structure

Sites

This information will be used for general statistics, as well as the directory.

  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 authenticate to the site using Mnet 2.0 (optional)
  8. Tool usage stats (forums/quizzes/resources etc) Not for public viewing.

Courses

All public courses will be listed here. Some will be looking for students, some will be teacher and admin communities, and some will be downloadable course templates.

  1. Site
  2. Name
  3. Description
  4. Tags
    1. Standard (mathematics, physics, biology) Always displayed, translatable etc define them
    2. User (stuff, openuni, jeromesstuff etc) Not displayed for browsing, but searchable
    3. Metadata standard (Dublic core? LOM?) choose the simplest
  5. Country code (AU, FR etc)
  6. Region/state (based on list)
  7. Language
  8. Availability (public/private)
  9. Cost (and currency)
  10. Download link: direct URL to Moodle download script or moodle.org cache or somewhere else
  11. Audience: Educators | Students | Admins
  12. Educational level being discussed (for educators audience only): Tertiary | Secondary | Primary | Government | Corporate
  13. Tool usage stats (number of forums/quizzes/resources etc) Only available for downloadable content.

Registration

The existing registration form will be extended so that admins can choose to send in more info about their sites to the directory. All courses flagged "Publish" are also sent with their full details.


Registrationform.png


A cron job will be added to Moodle so that each site can automatically inform directory.moodle.org later when course information is updated (if the admin allows it).

Moodle.org will perform a heartbeat ping every week to verify that the site is accessible. Sites that fail two or three in a row will be removed from the directory.

Web interface

A web interface, with clickable links to each course so that users can log in there.

Webinterface.png

From this interface the users can:

  • search by keyword and see a list of courses that match
  • browse a list of courses using the standard tag set
  • go directly to a course (if marked for public use)
  • preview a course (if screenshots have been provided)
  • download the course to desktop (only if an download url has been set)
  • give a rating to the course

When displaying courses, you can see and sort by:

  • Title
  • Description
  • Tags
  • Screenshot(s)
  • Cost (if any)
  • Rating (10-point scale displayed as 5 stars, and only if you are logged in to moodle.org)
  • Moodle site name
  • Date added to directory
  • Date last updated in directory
  • Date last checked (by a cron job)
  • Audience (teachers, students, admins)
  • Teacher name(s)

Web service interface

A REST-based web services interface will be provided for other systems (eg Moodle sites) to use directly.

Web services can search on:

  • string search
  • array language
  • array cost
  • array Moodle url
  • Others?

Community membership

The "Community" block allows people to find and subscribe to external courses that they want to be part of.

It can be added to any page for any user, and contains:

  1. A link to a search script, with a new capability to view it (default on for teachers, not students)
  2. A search script to browse/search the directory (using web services to call Moodle.org). Users can select joinable courses from the list and they will be added to the list of "subscribed" course links in the block contents (grouped by site).

If the course is on a site with mnet enabled in "open hub mode" then the link will take the user directly to the course and they will stay logged in. Otherwise the link will be just be an ordinary URL and the remote site will be responsible for authentication.


Blocktemplate.png

Share course templates

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