Technical Approach for LTI redesign
After an in-depth discussion on the LTI redesign, this document outlines the technical steps required for implementation and the planned iterations for development.
The final version of the project lists as objectives:
Facilitate the process of adding LTIs for administrators and course creators.
Create the flow of reusing LTIs in a friendly way
Adapt to make it easy to use for all types of users, from zero experts to the most experienced users.
Turning this into tasks there are many interventions that we will need. As this might be a long project we are already suggesting to do this in phases where we prioritize for impact and low cost.
Phase 1
IN PROGRESS
The first phase involves enabling course authors to reuse LTI tools (including those with LTI 1.3) using the existing “Copy to clipboard” and “Duplicate” features in Studio. Additionally, a new interface will be introduced to make LTI tool implementation more user-friendly.
1.1. Alter studio such that lti_consumer xblock is active by default and such that a new component button is available.
The function to load lti_consumer as an xblock for courses would default to true, but ideally this decision should be overridable at the instance or course level. The easiest way to handle this would be to use a waffle flag.
1.2. Graphical editor for the xblock
In this phase, the graphical editor would include the necessary steps for inserting a new lti consumer xblock.
At the present time we see two ways of creating such an editor.
Using the course-authoring MFE
Creating a React based editor for the xblock
Both of them require doing some work on the modal that would hold the editor.
1.3. Fix the re usability with the current tools
There are currently 2 ways of reusing a component in open edX:
Duplicate
Copy paste
Neither of them work because with the current implementation of lti_consumer xblock the client ID changes for every component that is added. Each client_id needs to be added back in the tool provider and this makes LTI1.3 very annoying to use.
This comes from the current implementation of Single Tenant mode of the LTI Deployment. The refactor of this xblock should allow the usage of both Single and Multi Tenant Deployment (completely unrelated to multitenancy in the lms). With this change it should be possible to reuse the same ClientID and to pick the deployment ID according to the usage of the tool (some institutions use the same deployment ID to separate courses, organization or things like the university department).
1.4. Fix the render for 1.3
Partly related to the previous point, when using LTI 1.3, the student_view rendered in studio only shows the configuration variables instead of the rendered LTI component which forces authors to publish and visit the unit in the LMS. We must address this to have both a way to see the final variables as well as the actual render.
1.5. Documentación
The current documentation needs to be updated to include the new LTI tool implementation features, along with detailed step-by-step examples for integrating common tools.
Phase 2
To do
This phase needs to create the backbones for the reuse directory.
Links and references:
Make fields overridable at the xblock even when using centralized config
Phase 3
To do
Centralized admin tool