Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

openbadges: Difference between revisions

From MoodleDocs
 
(32 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Work in progress}}
{{Work in progress}}
'''Status:'''
:The initial implementation has now been merged for release in Moodle 2.5.


==Background==
==Background==
Line 23: Line 26:
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have
|Course creator||Be able to create badges||I can issue badges to students for achievements||Must have
|-
|-
|Course creator||Be able to modify existing badges [1]||I can make changes to a badge without having to start again||Must have
|Course creator||Be able to modify existing badges [1][3]||I can make changes to a badge without having to start again||Must have
|-
|-
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have
|Course creator||Be able to delete badges||They can be removed from the system when no longer required||Must have
Line 35: Line 38:
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium
|Course creator||Be able to clone existing badges||I can create similar badges with less work||Medium
|-
|-
|Site administrator||Be able to create badge templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium
|Site administrator||Be able to create badge design templates for course creators to use||I can provide a consistent look for badges across my organisation||Medium
|-
|-
|Course creator||Be able to create badges based on site-wide templates||I can quickly create similar looking badges||Medium
|Course creator||Be able to create badges based on site-wide design templates||I can quickly create similar looking badges||Medium
|-
|-
|}
|}


[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons
[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons
[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).


===Badge assignment===
===Badge assignment===
Line 54: Line 59:
|-
|-
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have
|Student||Be able to receive a copy of badges I achieve||I can keep my own records of my achievements and upload to other services||Must have
|-
|Developer||Reuse the "conditional availability" functionality to control badge issuing||I can leverage existing code and avoid duplication||High
|-
|-
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student's progress||High
|Course creator||Be able to receive notification when a student receives a badge||I can stay informed about my student's progress||High
Line 70: Line 73:
|-
|-
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High
|Student||Be able to see the public or shared badges belonging to other users||I can see what learning my peers have achieved.||High
|-
|Student||Be able to see all of the badges that I can achieve via the site||I can prioritize and plan my learning||High
|-
|-
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium
|Student||Be able to control who is able to see each of my badges||I can decide for myself who I would like to share my achievements with.||Medium
|-
|-
|Student||Be able to display all the badges in my "backpack", including those from outside the moodle site||I can let others know about other learning that I've achieved from other sources.||Medium
|Student||Be able to display all the badges in my "backpack", including those from outside the Moodle site||I can let others know about other learning that I've achieved from other sources.||Medium
|-
|-
|}
|}
Line 95: Line 100:
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium
|Site administrator||Be able to see which site users have achieved a specific badges||I can track overall achievement of a particular badge.||Medium
|-
|-
|Site administrator||Be able to revoke badges across the entire site||I can correct errors by individual course creators.||Medium
|<del>Site administrator</del>||<del>Be able to revoke badges across the entire site</del>[2]||<del>I can correct errors by individual course creators.</del>||<del>Medium</del>
|-
|-
|Site administrator||Be able to inform a set of students that a badge has been revoked and remove it from display for that user||I can correct errors by individual course creators.||Medium
|<del>Site administrator</del>||<del>Be able to inform a set of students that a badge has been revoked and remove it from display for that user</del>[2]||<del>I can correct errors by individual course creators.</del>||<del>Medium</del>
|-
|-
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium
|Student||Be able to push individual badges from Moodle into my external badge backpack||So that I can share my badges externally to moodle||Medium
Line 105: Line 110:
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low
|Course creator||Be able to set an expiry period for badges||I can use badges in cases where achievements only last a fixed period of time.||Low
|-
|-
|Course creator||Be able to set evidence for badges||I can show how students earned the badge.||Low
|Course creator||Be able to automatically generate user-specific evidence for badges||I can show how students earned the badge.||Low
|-
|-
|Course creator||Be able to perform more detailed reporting (such as who hasn't achieved a badge yet)||I can see which students I need to follow up with.||Low
|Course creator||Be able to perform more detailed reporting (such as who hasn't achieved a badge yet)||I can see which students I need to follow up with.||Low
Line 143: Line 148:
==Implementation Options==
==Implementation Options==


===Certificate Module===
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the [http://moodle.org/mod/forum/discuss.php?d=197834 community forum], we decided to look at implementing a separate module for Open Badges.
 
Moodle already has a module which behaves in a similar way to the proposals for open badges - the [http://moodle.org/plugins/view.php?plugin=mod_certificate Certificate Module]. It makes sense to consider extending the certificate module avoid rewriting similar code.
 
{|border="1" style="border: 1px solid #d0e0f0; clear:both;" cellpadding="5"
|-
! Pros||Cons
|-
| Some potential for code reuse || Potential for reuse is actually fairly limited since certificate and badges must use different libraries to create them
|-
| May increase awareness/usage of badges by making them visible to certificate module users || Adds complexity to the certificate module UI
|-
|  || Activity creator will need to choose between badge or certificate early on, might as well be separate, tailored module
|-
|  || Badges may need to act at a higher context than "activity", e.g. receiving badges for course completion, not just activity completion - so an activity module might not be appropriate
|-
|  || Certificate module not part of core at the moment
|-
|}
 
====Potential for code reuse====
 
Could be reused:
 
* Notify teacher of issued certificate via email
* Report on issued certificates - would probably want to extend
 
The following existing features would need to be modified or reimplemented:
 
* Download or display certificate (PDF format) - would need to output PNG file with badge baking code
* Controlling the certificate appearance - may be able to reuse settings code, but implementation would need to be new (because the badge must be a PNG rather than PDF):
** Adding user specific text to certificates (recipient name, grade, teacher, etc)
** Adding custom text to certificates
** Display options (upload background, borders, seal, logos, etc)
 
There is also the question as to if Moodle HQ or the certificate module maintainer would want Open Badges integrated with the certificate module, or would prefer a standalone system. Currently the certificate module is a plugin (not distributed with the default moodle install).
 
'''Status''': Seeking community input - please add any comments to the [http://moodle.org/mod/forum/discuss.php?d=197834 forum post].


===Badge awarding criteria===
===Badge awarding criteria===


We need to firm up exactly what sorts of criteria will lead to the issuing of badges, as this affects the implementation. Some ideas:
For initial development, we expect to support the following criteria that will lead to the issuing of badges:


* Completing an activity or set of several activities
* Completing an activity or set of several activities (viewing an activity as a part of it)
* Completing a course
* Completing a course
* Completing a set of courses?
* Completing a set of courses
* Viewing an activity
* Posting to a forum
* Posting to a forum
* Filling in user profile or tagging items (to encourage participation)
* Filling in user profile (to encourage participation)
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)
* Discretionary awarding of badges by teacher (e.g to reward certain behaviour)
===Technical specification===
The technical specification can be found on GitHub [https://github.com/totara/openbadges-docs Totara openbadges-docs] repository.
===User documentation===
We are working on user documentation. Current functionality description can be found on [[OpenBadges_User_Documentation|OpenBadges User Documentation]] page.


==Open Badges Integration==
==Open Badges Integration==


Open badges are still in beta so we can expect additional features and possibly some API changes over time. v1 is due out [https://wiki.mozilla.org/Badges/roadmap#Q1:_Ship_OBI_v1.0 Q1 2013].
Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.


===Implementation plan===
===Implementation plan===
Line 208: Line 182:
It should be possible to implement each component as separate modules. Our proposed order:
It should be possible to implement each component as separate modules. Our proposed order:


# Badge creation and verification service in Moodle.
# Badge creation and management in Moodle. '''Done!'''
# Moodle Block to display badges received from the site (internal badges)
# Moodle Block to display badges received from the site (internal badges) '''Done!'''
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them)
# Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) '''Done!'''
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) '''Done!'''
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)
# Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)
# Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared)
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)
# Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)


Once open badges supports federated backpack providers we may also add:
Once OpenBadges Infrastructure supports federated backpack providers we would like to add:


7. Allow Mahara sites to become backpack providers
7. Allow Mahara sites to become backpack providers
Line 224: Line 198:


This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.
This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.
==Certificates from Badges==
It says on Wikipedia that the badges are the digital indicators of skills learned inside or outside the classroom.  They also contain metadata which allow anyone to verify the skills of open badge owner.
But there is a problem as still many situations occur where (only) digital proof is not enough or is not accepted. In our country (Slovenia) teachers are awarded the impact points (in a form of paper certificate) for every seminar that they have successfully accomplished. Their accreditation and promotion confirmed by the Ministry of Education is based on paper form certificates. It is sad that although the seminars are about and for promoting the use of ICT in classroom the participants still need to get paper certificates.
Several foreign students come to our country due to the international student exchange programme. Although all their work is done online, again, they need paper based certificates to prof their skills and knowledge.
When it comes to technology i.e. Moodle, we are met with dilemma: should we use OpenBadges or some other module for certificates?
Our suggestion is that we combine both of them in the following form: openbadges module or plugin as a foundation to which we would add an additional functionality, so that each badge could be printed out in a form of a certificate (exported to the pdf file).
That way each teacher would get a badge for every seminar and still be able to print out a certificate for the non-digital world.
To achieve this, we must extend the process of badge creation (also see mockups below):
* on site level, we define templates (watermark image and description where to print student's name, badge name etc.);[[File:manage_templates_mockup.png|Extensions to existing administration sideblock]]
* each template has authorization key (so there can be no unauthorized usage);
* on badge level we (optionally) choose which template should be used if the badge owner wants to print out the certificate;
* when choosing template also authorization key must be entered;[[File:add_new_badge_mockup.png|Extensions to existing form for adding new badge]]
* site admin can see and revoke certificate template from badges;[[File:template_details_mockup.png|Extensions to existing administration sideblock]]
[[File:administration_sideblock_mockup.png|Extensions to existing administration sideblock]]


==Links==
==Links==
Line 230: Line 228:
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]
* [https://wiki.mozilla.org/Badges MozillaWiki on Open Badges]
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]
* [http://bananigans.tumblr.com/post/22586770579/how-to-learn-more-about-open-badges How to learn more about Open Badges]
* [http://moodle.org/mod/forum/discuss.php?d=197834 Moodle.org forum post]
* [https://moodle.org/mod/forum/view.php?id=8085 Badges Moodle forum] - [http://moodle.org/mod/forum/discuss.php?d=197834 Post announcing the project]
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]
* [http://blog.mozilla.org/blog/2011/09/15/openbadges/ Mozilla blog post announcing project]
* [http://tracker.moodle.org/browse/MDL-35073 Moodle tracker issue]
* [http://github.com/totara/openbadges-docs Specifications on github]
* [https://docs.moodle.org/dev/OpenBadges_User_Documentation Preliminary user documentation]
* [http://github.com/totara/openbadges Code on github] - Note this was the pre-release code. Open badges is now integrated into Moodle and available in 2.5 via [http://github.com/moodle/moodle Github]
* [https://tracker.moodle.org/browse/MDL/component/12643 Moodle tracker component] - [https://tracker.moodle.org/browse/MDL-35073 Badges integration issue]

Latest revision as of 10:58, 12 February 2014

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.


Status:

The initial implementation has now been merged for release in Moodle 2.5.

Background

In September 2011, Mozilla launched the Open Badges project as a way to "make it easy to issue and share digital learning badges across the web". Mozilla have developed an open specification and API for badge creation and sharing and are looking for developers to implement infrastructure that makes use of the badges.

TotaraLMS have volunteered to lead the development to integrate Open Badges into Moodle (and also Mahara).

This document contains our initial ideas and some unanswered questions around implementation in order to receive feedback from the moodle community on what is required and how to implement it.

User Stories

Our first step is to attempt to define the requirements and priorities. Feedback welcome:

Badge creation

As a... I want to... So that... Priority
Site administrator Be able to control who is able to create and issue badges I can manage the issuing of badges from my organisation Must have
Course creator Be able to create badges I can issue badges to students for achievements Must have
Course creator Be able to modify existing badges [1][3] I can make changes to a badge without having to start again Must have
Course creator Be able to delete badges They can be removed from the system when no longer required Must have
Course creator Be able to set a background image for the badge I can customise the appearance of the badges I create Must have
Course creator Be able to embed custom text into the badge image I can choose the text shown on the badges I create High
Course creator Be able to embed user specific text into the badge image I can create badges that are specific to each user High
Course creator Be able to clone existing badges I can create similar badges with less work Medium
Site administrator Be able to create badge design templates for course creators to use I can provide a consistent look for badges across my organisation Medium
Course creator Be able to create badges based on site-wide design templates I can quickly create similar looking badges Medium

[1] Note this means changing the badge that will be issued from that point on - the open badges spec intentionally prevents an issuer from modifying badges once they have been issued to the user for security reasons

[3] At the moment, we are also considering locking badge criteria from changes once at least one badge was awarded based on existing criteria. To update the badge completely, badge creator will have to copy/duplicate the badge and make all the changes (Yuliya).

Badge assignment

As a... I want to... So that... Priority
Course creator Be able to control the criteria that leads to the issuing of badges I can ensure badges are only issued to students who have achieved them Must have
Student Be able to receive a notification when I have received a new badge I know when I have made an achievement Must have
Student Be able to receive a copy of badges I achieve I can keep my own records of my achievements and upload to other services Must have
Course creator Be able to receive notification when a student receives a badge I can stay informed about my student's progress High

Badge display

As a... I want to... So that... Priority
Student Be able to see all of the badges that I have achieved via the site in one location I can get an overview of my achievements Must have
Student Be able to see the public or shared badges belonging to other users I can see what learning my peers have achieved. High
Student Be able to see all of the badges that I can achieve via the site I can prioritize and plan my learning High
Student Be able to control who is able to see each of my badges I can decide for myself who I would like to share my achievements with. Medium
Student Be able to display all the badges in my "backpack", including those from outside the Moodle site I can let others know about other learning that I've achieved from other sources. Medium

Badge management

As a... I want to... So that... Priority
Course creator Be able to see which of my students have achieved a specific badge I can track the progress of my students. Must have
Course creator Be able to revoke badges that are no longer valid[2] I can correct an error if a badge is assigned by mistake. Must have
Course creator Be able to inform a student that a badge has been revoked and remove it from display for that user[2] I can correct an error if a badge is assigned by mistake. Must have
Course creator Be able to see the badges achieved by an individual student I can assess the progress of an individual student. High
Site administrator Be able to see the badges achieved by any site user I can track the progress of individuals. Medium
Site administrator Be able to see which site users have achieved a specific badges I can track overall achievement of a particular badge. Medium
Site administrator Be able to revoke badges across the entire site[2] I can correct errors by individual course creators. Medium
Site administrator Be able to inform a set of students that a badge has been revoked and remove it from display for that user[2] I can correct errors by individual course creators. Medium
Student Be able to push individual badges from Moodle into my external badge backpack So that I can share my badges externally to moodle Medium
Student Be able to automatically push all my badges from Moodle into my external badge backpack So that my achievements are available in my backpack without having to push them every time Low
Course creator Be able to set an expiry period for badges I can use badges in cases where achievements only last a fixed period of time. Low
Course creator Be able to automatically generate user-specific evidence for badges I can show how students earned the badge. Low
Course creator Be able to perform more detailed reporting (such as who hasn't achieved a badge yet) I can see which students I need to follow up with. Low

[2] Revoking of issued badges is not currently possible in Open Badges infrastructure

Badge verification

As a... I want to... So that... Priority
Assessor Know that all badges displayed within the system are valid (have been achieved by the user they are displayed for) I can be certain that the badges displayed within the system have all been achieved. Must have
Assessor Be able to confirm from the original source that a badge being displayed by a user (outside of the system) is valid I can be certain that the student has achieved a particular badge. Must have

Integration with Mahara

As a... I want to... So that... Priority
Mahara user Be able to easily display all my achieved badges I can include my achievements in my porfolio. Must have
Mahara user Have my badges from Moodle automatically imported into Mahara I don't have to manually copy new badges each time I achieve something. Must have
Mahara user Control which badges appear when displaying them in my porfolio I can present different representations of my achievements to different audiences. High
Site administrator Remove badges from a users portfolio if they have been revoked I can prevent a user displaying badges that are no longer valid. High

Implementation Options

Moodle already has a module which behaves in a similar way to the proposals for open badges - the Certificate Module. Initial idea was to consider extending the certificate module to avoid rewriting similar code. However, after some discussions and feedback on the community forum, we decided to look at implementing a separate module for Open Badges.

Badge awarding criteria

For initial development, we expect to support the following criteria that will lead to the issuing of badges:

  • Completing an activity or set of several activities (viewing an activity as a part of it)
  • Completing a course
  • Completing a set of courses
  • Posting to a forum
  • Filling in user profile (to encourage participation)
  • Discretionary awarding of badges by teacher (e.g to reward certain behaviour)

Technical specification

The technical specification can be found on GitHub Totara openbadges-docs repository.

User documentation

We are working on user documentation. Current functionality description can be found on OpenBadges User Documentation page.

Open Badges Integration

Open badges v1.0 came out Q1 2013 so we can expect additional features and possibly some API changes over time.

Implementation plan

Here is a diagram of the current infrastructure for managing badges. We intend to develop the functionality to make Moodle both a "displayer" and a "issuer" of badges and Mahara as a "displayer".

This diagram outlines the various components:

Open Badges infrastructure diagram

It should be possible to implement each component as separate modules. Our proposed order:

  1. Badge creation and management in Moodle. Done!
  2. Moodle Block to display badges received from the site (internal badges) Done!
  3. Add code to support direct pushing of internal badges to external backpack (without having to manually download/upload them) Done!
  4. Badge displayer in Moodle (displays external badges and any internal ones that have been pushed to backpack and shared) Done!
  5. Badge displayer in Mahara (displays external badges and any internal ones that have been pushed to backpack and shared)
  6. Add code to support direct pushing of internal badges to Mahara via Porfolio API (no need for external backpack)

Once OpenBadges Infrastructure supports federated backpack providers we would like to add:

7. Allow Mahara sites to become backpack providers

The reason for providing a direct method for displaying internal badges without requiring an external backpack is because pushing badges to an external backpack requires an external account for managing badges as outlined here:

https://wiki.mozilla.org/Badges/Onboarding-Earner#II._FUNCTIONAL_FLOW:_FIRST_TIME_EARNER

This workflow has some advantages (primarily the user has full control over their own badges) but seems quite complex. Given that Moodle is both an issuer and displayer we are able to avoid this step for users who do not want to share their badges to a wider audience.

Certificates from Badges

It says on Wikipedia that the badges are the digital indicators of skills learned inside or outside the classroom. They also contain metadata which allow anyone to verify the skills of open badge owner.

But there is a problem as still many situations occur where (only) digital proof is not enough or is not accepted. In our country (Slovenia) teachers are awarded the impact points (in a form of paper certificate) for every seminar that they have successfully accomplished. Their accreditation and promotion confirmed by the Ministry of Education is based on paper form certificates. It is sad that although the seminars are about and for promoting the use of ICT in classroom the participants still need to get paper certificates.

Several foreign students come to our country due to the international student exchange programme. Although all their work is done online, again, they need paper based certificates to prof their skills and knowledge.

When it comes to technology i.e. Moodle, we are met with dilemma: should we use OpenBadges or some other module for certificates?

Our suggestion is that we combine both of them in the following form: openbadges module or plugin as a foundation to which we would add an additional functionality, so that each badge could be printed out in a form of a certificate (exported to the pdf file).

That way each teacher would get a badge for every seminar and still be able to print out a certificate for the non-digital world.

To achieve this, we must extend the process of badge creation (also see mockups below):

  • on site level, we define templates (watermark image and description where to print student's name, badge name etc.);Extensions to existing administration sideblock
  • each template has authorization key (so there can be no unauthorized usage);
  • on badge level we (optionally) choose which template should be used if the badge owner wants to print out the certificate;
  • when choosing template also authorization key must be entered;Extensions to existing form for adding new badge
  • site admin can see and revoke certificate template from badges;Extensions to existing administration sideblock

Extensions to existing administration sideblock

Links