product-backlog
product-backlog copied to clipboard
Moodle Parity
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.
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
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
.
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
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.