product-backlog icon indicating copy to clipboard operation
product-backlog copied to clipboard

Moodle Parity

Open nairiboo opened this issue 1 year ago • 2 comments

Problem Statement:

  • No Moodle files integration
  • No Moodle small groups
  • No Moodle course copy

Rationale: Lots of missing options in Moodle Impact: Elon U., and other tier 1 and 2 institutions share this as an obstacle for adoption. Proposal: Give Moodle partners one or more of the above​ to improve their experience.

nairiboo avatar Jun 01 '23 07:06 nairiboo

Supported features

Groups

Very similar to other LMS. Instructors can organize students in different "Groupings" in Moodle and pick the right one per assignment.

We don't support groups that created directly in the course, ie. not part of a grouping.

Files

Files can be added to the course topics and also nested inside folders there. A new option in the file picker allow selecting them.

Pages

Similar to files pages can be added to topics (but apparently not folders). They can be picked as the document while configuring an assignment.

Course copy

All this features should work across course copy with a big caveat: only for deep linked assignments.

Existing installs should be updated to support this (marking checkbox on their end) and we should recommend deep linking to be enabled for new installs.


Short demo of the deep linking flow for end of last year: https://github.com/hypothesis/product-backlog/assets/1433832/9cf8b4de-d7fc-42e7-95df-94cff65fe511

Walkthrough of the features from a couple weeks ago, it's a bit more polished now.

https://github.com/hypothesis/product-backlog/assets/1433832/f3aadfec-3b7a-4a23-8ffb-259dd38ce308

marcospri avatar Mar 07 '24 16:03 marcospri

Moodle admins setup

DeepLinking

To enable deep linking in both existing and new installs this checkbox should be enabled and the URL should point to our content_item_selection.

Screenshot from 2024-03-07 17-29-10

API setup

  • Moodle admins need to pick an user that the token they create will be associated as.

We could ask admins to pick their own user, or a generic admin user thet might have. For more security conscious admins (and probably for more a more future proof approach) we can ask admins to create a new user just for this purpose.

The user will need a few "capabilities" so we probably should ask admins to first create a new "role" and then an user with that role.

Role creation

Screenshot from 2024-03-07 17-38-42

Capabilities:

  • moodle/course:managegroups
  • moodle/course:view

User creation

There's a few gotchas (I found) that would prevent a newly created user to use the API:

  • User is required a password change.
  • User needs to agree to a few policies (privacy etc)

External service

  • Admin need to create a "External service" for us here: https://hypothesisuniversity.moodlecloud.com/admin/settings.php?section=externalservices

External services have a "function" concept, similar to canvas scopes. We currently need:

core_course_get_contents core_group_get_course_groupings core_group_get_course_user_groups core_group_get_groupings mod_page_get_pages_by_courses

API token

  • We need admins to send us a token created over: https://hypothesisuniversity.moodlecloud.com/admin/webservice/tokens.php

  • That token needs to be copied in our admin pages, moodle settings per AI.

marcospri avatar Mar 07 '24 16:03 marcospri