openedx / openedx/openedx-core
Making an Open edX Learning Object Repository
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 10
- Forks
- 32
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 12
Description
Assume the following:
- We want to start by focusing on the small-Item reusability use case.
- We've split the concepts of Learning Package and Learning Context.
What would a centralized LOR look like, and what's the easiest way it could work for end users?
Executing in-place
A number of institutions like MIT operate multiple instances and have difficulty managing their content across those instances, leading to various solutions over time. Instead of trying to facilitate content replication across instances, what if we serve content centrally? Not in the sense that there's only ever one server, but in the sense that an organization could choose to manage all their content in one place.
So what could that look like? Some possibilities:
- An LTI Advantage interface would be a basic requirement.
- We could expose a separate iframe-based API for the anonymous-user use case. This would drastically lower the burden of using very small pieces of content in random places. We would want to have some API layer over this to do things like iframe-resize messages, so this could likely be encapsulated into a web component.
- We'd probably need a way to assign things like attempts, hints settings, weighted score, and other settings at the Learning Context level.
- We may need to create some site <-> learning context mapping so that certain learning contexts only get delivered out of certain domains.
- The authoring interface is in this new web application.
- There would be a runtime dependency between LMS instances and one or more LOR instances.
- Security would be a major concern if we're hosting some shared LOR space. We'd have to make sure frontend code was executed in iframes, and potentially unsafe backend code was executed in sandboxed processes (WASM?).
This could be a pretty jarring authoring experience for course authoring though, particularly if people are bouncing back between the Studio and one or possibly multiple LOR instances.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin by reviewing the linked Learning Package and Learning Context issue and the proposed LTI and iframe interfaces; no implementation entry point or acceptance criteria are named. Done would require an agreed LOR design and defined scope, rather than a self-contained code change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, wasm
- Domain
- backend-api-design, distributed-systems, security, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100