Note:

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

Learning Plans Specification
Project state In Progress
Tracker issue https://tracker.moodle.org/browse/MDL-49458
Discussion -
Assignee Damyon Wiese


This is a specification for the implementation of "Learning Plans" for 3.0.

Overview

This feature introduces a few concepts:

  • Competency - A skill, knowledge, qualification, or capacity. Each competency is often given a unique code and may be related to other competencies.
  • Competency framework - An organised collection of competencies. Often created by a standards body.
  • Course competencies - A list of competencies from one or more competency frameworks, that are linked to a course. Completing the course will mark those competencies complete.
  • Learning Plan - A users personal list of competencies (achieved and yet to be achieved). A user can create their own draft learning plan, but it must be approved by someone with the required capability before it becomes "Active".
  • Evidence of prior learning - Some sort of documentation that has been provided to prove that a specific competency has been met. Must be approved before the competency will be deemed to be achieved.
  • Learning plan template - A predefined list of competencies and courses that can be used as the basis for a users personal learning plan.

Competency framework

New admin page to manage (CRUD) competency frameworks.

A competency framework consists of:

  • Name
  • Description
  • ID number
  • Competency Scale - There are 3 things that need to be configured for the scale -
    • the "scale" to use for competency completion. This must be chosen from the standard moodle scales.
    • from the chosen scales, the items from the scale that mean "proficient" must be specified
    • the default value to assign when a competency is automatically marked as "met"
  • Visible (checkbox)

If a competency framework is not "Visible" it (and all it's competencies) only shows up in the interface for users with the tool_lp/competencyframework:viewhidden capability.

A competency framework also has a "tree" of competencies.

Capability 'tool_lp/competency:manage' allows write access to this page.

Capability 'tool_lp/competency:read' allows read access to this page.

An entire competency framework should be able to be imported/exported via files.

A newly imported competency should not be visible (so it can be reviewed before it is made available).

Competency

Each competency framework should link to a page to manage (CRUD) the competencies for that framework.

A competency consists of:

  • Name
  • Description
  • ID number
  • Visible (checkbox)

Competencies are displayed in an "Aria" tree control, linked from the competency framework page and can be drag/dropped to any new location in the tree. The tree can be filtered by searching, and provide keyboard controls equivalent to the drag and drop. Selecting a node in the tree should highlight it and show more info in a panel to the side. Also in the panel are the controls for CRUD + linking to courses and other competencies.

Linked courses should just show a list of the courses that are linked to this competency in a popup.

Related competencies should allow searching and selecting related competencies in a popup.

If a competency is not "Visible" it only shows up in the interface for users with the tool_lp/competency:viewhidden capability.

Capability 'tool_lp/competency:manage' allows write access to this page.

Capability 'tool_lp/competency:read' allows read access to this page.

Course Competencies

A course may be linked to one or more competencies, from one or more competency frameworks.

In the course settings block a new link will appear "Course competencies" which goes to a page where you can list, add and remove competencies from the current course.

Adding a competencies is done through a popup that allows searching by competency framework + a text search.

Removing a competency is done by clicking on the remove icon.

Capabilities in the list can be reordered, with drag/drop - but it is purely for aesthetics.

Capability tool_lp/coursecompetency:manage controls write access to this page. Capability tool_lp/coursecompetency:read controls read access to this page.

Learning Plan Template

Learning plan templates are created from a new admin page.

Read access to this page is controlled by the capability 'tool_lp/template:read'.

Write access to this page is controlled by the capability 'tool_lp/template:manage'.

A Learning plan template consists of:

  • A name
  • A description
  • A due date (optional)
  • An id number
  • Visible

If a template is not "Visible" it only shows up in the interface for users with the tool_lp/template:viewhidden capability.

Competencies can be linked to a learning plan template.

If a competency is added or removed from a learning plan template, all learning plans created from that template will be affected.

Learning plan templates should allow "duplication" to create a new template for a new year (for example).

Learning Plan

Users view and manage their learning plans through their profile.

Users must have tool_lp/plan:viewown to see any of the learning plan pages in their profile.

Users must have tool_lp/plan:viewall to see other users learning plans in their profile.

There will be a page listing the draft, active or completed learning plans for this user. (Only active and completed learning plans are visible to users without tool_lp/plan:manage).

A User with tool_lp/plan:createdraft can create their own learning plan, and add competencies to it. By default the plan will be "draft", when ready, the user can send their plan for "approval" (unless they can approve their own plan). Users can also manually "complete" a plan if they have the capability tool_lp/plan:manage, (or capability tool_lp/plan:manageown for their own plan).

Users can have more than one draft, active or complete plan at any one time. A completed plan becomes read-only, it is a record of the items that were completed/not completed at the end of the plan. A user with capability tool_lp/plan:manage (or capability tool_lp/plan:manageown for their own plan) can re-activate a completed plan.

A User with tool_lp/plan:manage can create learning plans for other users, and add competencies to them. A learning plan created from a template will contain a list of competencies that match the template. Updates to the template will be reflected in any plan created from that template.

There should be a page that can create and approve learning plans in bulk for a set of users (requires a template) (requires tool_lp/plan:manage)

There should be a block created that lists (with a search option) all the draft learning plans that are waiting to be approved (the idea is to add the block to the dashboard of users with the capability to approve), with a streamlined workflow for approving/denying the requests.

Each learning plan can have an optional end date, if the plan is from a template the end date for the template will be used. If a plan has an end date, it will automatically be "completed" at that end date. A plan will also be automatically completed, if all the competencies in the plan are complete.

A Learning Plan contains:

  • A user
  • A name
  • A description
  • An optional template
  • An optional end date
  • A list of competencies

For each plan, a user should be able to see a list courses, that they could enrol in in order to complete the competencies in their plan (Not including already completed/enrolled courses).

Evidence of prior learning

A user with capability tool_lp/evidence:manageown can attach evidence of prior learning to a competency in any of their active learning plans. A user with capability tool_lp/evidence:manageany can edit the evidence for any other user. A person with capability tool_lp/plancompetency:approve can then review the evidence and either approve or deny the request (with a text comment). Approving the request will mark the competency as met.

There should be a block created that lists (with a search option) all the manual competency completion requests that are waiting to be reviewed (the idea is to add the block to the dashboard of users with the capability to approve), with a streamlined workflow for approving/denying the requests.

General Design Notes