Note: You are currently viewing documentation for Moodle 2.9. Up-to-date documentation for the latest stable version of Moodle may be available here: Community hub.

Development:Community hub: Difference between revisions

From MoodleDocs
No edit summary
Line 1: Line 1:
{{Moodle 2.0}}
{{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).
This page describes a functional spec for the "Moodle Community Hub" project, which consists of several new features in Moodle 2.0.  


The tracker issue for this project is MDL-18580.
The tracker issue for this project is MDL-18580.
Line 12: Line 12:
# 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.  
# 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 =  
= Overview =


The solution consists of several parts in Moodle.
The solution consists of several parts in Moodle.
Line 22: Line 22:


[[Image:Community.png]]
[[Image:Community.png]]
= Use Cases =
== Newbie teacher ==
== University consortium ==
== Course creation business ==


= Components =
= Components =
Line 120: Line 129:


== Community membership ==
== Community membership ==


The "Community" block allows people to find and subscribe to external courses that they want to be part of.
The "Community" block allows people to find and subscribe to external courses that they want to be part of.
Line 134: Line 142:
[[Image:Blocktemplate.png]]
[[Image:Blocktemplate.png]]


== Share course templates ==


=== Course Template block===
[[Image:Coursetemplateblock.png]]


Course template block will have several buttons:
== Import/Export courses ==
* 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)
The Import/Export block will be available on course pages and contains buttons to:
* 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)
* '''Export course''': publish entire course (as Moodle Backup minus userdata) as a course template to a Moodle Hub (Portfolio API plugin)
* '''Import course''': find/install a course template from a Hub or from another course on same site  (Repository API plugin)
* '''Publish course''': to publish or update the description of the current course in the Moodle.org directory (admins only)
 


=== Import a course template ===
=== Export course ===


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 standard export will do a normal backup (taking care to remove userdata by default), and at the end will call the portfolio API to push that file to a connected portfolio. These could include:
* downloading it to the local computer
* uploading it to any general purpose repository
* uploading it to a Moodle Hub site already set up with Mnet peering.


A repository instance called "Import course templates" allows access to all configure directories and Hubs (based on what is configured).
Pushing it to a Moodle Hub would trigger extra behaviours:
* More metadata would be required (including screenshots?)
* Permissions would be checked on the destination Moodle
* The course can be immediately restored on the external Moodle in a special "New" category as a hidden course
* Someone on the external Moodle can be alerted to approve/unhide the new course


This includes:
=== Import course ===
* Searching the Moodle.org Directory for downloadable courses (only).
* Searching configured hubs for downloadable courses.


This will require:
The '''Import course''' button will pull up a normal file picker to browse repositories for files with a mimetype matching .mbkup.zip.


# Special new file types for Moodle files eg .mbkup.zip .mforumbkup.zip
One special repository plugin called "Courses" allows the user to:
# 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.
# Special module (activity module?) in the server Moodle that manages uploaded files <span style="color:red;"> (where? how?)</span> with ratings, comments, tagging, workflow etc.
# Course page to unpack returned file and "restore" it to the current course.
[[image:Search_course800.png]]<br/><br/>
<span style=color:blue>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...</span> <span style=color:red>better look needed into this technical specs...</span>


=== Publish your course template as a Hub ===
* search the moodle.org directory for downloadable courses (only)
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.
* directly search any connected hubs for downloadable courses
* search other courses on the same server (replacing the existing import function we have)


[[Image:Publishtemplate.png]]<br/>The above picture should only be a part of the course settings page. <span style=color:blue>An anchor to this section has to be set, and the "Publish" link is linked to this anchor.</span>
Once the user has selected one of these courses, the user is passed to the standard restore process.


=== Export your course template ===
=== Publish course ===


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.
The '''Publish''' button only exists if the current site has been registered on the Moodle directory already, and if the current user has the appropriate capabilities.  


We also want the possibility to export into the Hub previously added. <span style=color:blue>Mnet config need to be setup on the two sites (the peer are set automatically)</span>
After clicking "Publish" the user will get taken to a script asking if you want to allow downloads of this course.  


There should be two different kinds of exportable file:
If downloads are allowed, then you are redirected to the backup process to create and define the backup file, then returned to the script if successful.  The backup file is cached in a standard place with a standard name.  If downloads are not required then this step is skipped.
* 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. <span style=color:blue>All links should be removed (they should now link to the same page) We could go through activity pages, only one level down.</span>
Now the script lists the metadata that this course will be published with on the moodle.org directory (this is also available in the course settings page).  After checking/updating the metadata, the script will push the data to the Moodle.org directory.  The Moodle directory will bounce back a confirmation which gets saved locally as the "Last publish date".
 
If the checkbox to allow download was checked, then the URL to a course download script is included with this metadata.
 
The course download script (eg /course/download.php?id=55&secret=XXXXX) will send the cached .zip file for the given course, or (if the the admin has specified that automatic updates are allowed and the course has also allowed it, then it might update the cache once a day or something).
 
[[Image:Publishtemplate.png]]
 
= Schedule =
 
Full schedule and progress is in the tracker: MDL-18580.
 
# Moodle.org directory
# Web interface
# Web service interface
# Improve registration form


= Use Cases =


= See also =
= See also =

Revision as of 06:24, 21 May 2009

Template:Moodle 2.0

This page describes a functional spec for the "Moodle Community Hub" project, which consists of several new features in Moodle 2.0.

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

Use Cases

Newbie teacher

University consortium

Course creation business

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.

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.


Registrationform.png

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


Import/Export courses

The Import/Export block will be available on course pages and contains buttons to:

  • Export course: publish entire course (as Moodle Backup minus userdata) as a course template to a Moodle Hub (Portfolio API plugin)
  • Import course: find/install a course template from a Hub or from another course on same site (Repository API plugin)
  • Publish course: to publish or update the description of the current course in the Moodle.org directory (admins only)


Export course

A standard export will do a normal backup (taking care to remove userdata by default), and at the end will call the portfolio API to push that file to a connected portfolio. These could include:

  • downloading it to the local computer
  • uploading it to any general purpose repository
  • uploading it to a Moodle Hub site already set up with Mnet peering.

Pushing it to a Moodle Hub would trigger extra behaviours:

  • More metadata would be required (including screenshots?)
  • Permissions would be checked on the destination Moodle
  • The course can be immediately restored on the external Moodle in a special "New" category as a hidden course
  • Someone on the external Moodle can be alerted to approve/unhide the new course

Import course

The Import course button will pull up a normal file picker to browse repositories for files with a mimetype matching .mbkup.zip.

One special repository plugin called "Courses" allows the user to:

  • search the moodle.org directory for downloadable courses (only)
  • directly search any connected hubs for downloadable courses
  • search other courses on the same server (replacing the existing import function we have)

Once the user has selected one of these courses, the user is passed to the standard restore process.

Publish course

The Publish button only exists if the current site has been registered on the Moodle directory already, and if the current user has the appropriate capabilities.

After clicking "Publish" the user will get taken to a script asking if you want to allow downloads of this course.

If downloads are allowed, then you are redirected to the backup process to create and define the backup file, then returned to the script if successful. The backup file is cached in a standard place with a standard name. If downloads are not required then this step is skipped.

Now the script lists the metadata that this course will be published with on the moodle.org directory (this is also available in the course settings page). After checking/updating the metadata, the script will push the data to the Moodle.org directory. The Moodle directory will bounce back a confirmation which gets saved locally as the "Last publish date".

If the checkbox to allow download was checked, then the URL to a course download script is included with this metadata.

The course download script (eg /course/download.php?id=55&secret=XXXXX) will send the cached .zip file for the given course, or (if the the admin has specified that automatic updates are allowed and the course has also allowed it, then it might update the cache once a day or something).

Publishtemplate.png

Schedule

Full schedule and progress is in the tracker: MDL-18580.

  1. Moodle.org directory
  2. Web interface
  3. Web service interface
  4. Improve registration form


See also