openbadges
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 agreed 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
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 control 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 | 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 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 different types of badges | Medium |
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 |
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 |
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 |
Site administrator | Be able to control who is able to see a user's badges | I can set the privacy of badges to an appropriate level for my situation. | Must have |
Student | Be able to see the badges belonging to other users | I can see what learning my peers have achieved. | 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. | Low |
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 | 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 | 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 | 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 | I can correct an error if a badge is assigned by mistake. | Medium |
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 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 |
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. It makes sense to consider extending the certificate module avoid rewriting similar code.
The following existing features could probably 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 forum post.
Open Badges Integration
Use of the backpack for managing all badges
Here is the current infrastructure: