This feature would point out where broken links and images within a given course are. This would minimize what we store on our servers, save course teams time, and provide a better learning experience. This was the number one ranked enhancement in an edx.org survey for 2024 by nearly 100 respondents (edX partners). Additionally, this gets us closer to parity with Canvas. They offer a link validator tool in which users can check links, which searches through course content and returns invalid or unresponsive course content links.
Context & Background (in brief, if a Product Proposal is linked above)
Often times broken links and images are reported by students to staff. This is an undesired learning experience. Offering authoring teams the ability to know what links are broken and where they are broken within the course would be a positive change in Studio. As mentioned above, this was a very highly ranked potential enhancement based on feedback from edx.org partners in 2024.
Scope & Approach (in brief, if a Product Proposal is linked above)
Assuming the feature is utilized, learners are really the primary beneficiaries as they now encounter better courses that don't have broken links. Course authors also will gain from this feature, though. As mentioned above, this was the number one ranked feature in a survey of nearly 100 edx.org partners. Other potential features that were included in the survey were addressing schedules and dates, Course Outline redesign that would enable various authoring efficiencies, redesigning the drag n drop xblock, folders, customized learning path, and AI based problem sets, to name a few.
Value & Impact (in brief, if a Product Proposal is linked above)
Mostly this will be measured qualitatively. The feedback we have received has been highlighted. We will continue to get feedback and make iterations if necessary. The value to the platform is that it will be easier for course teams to ensure that there are not broken links/images in their courses. And then that value will be passed to students to make for a better learning experience.
Milestones and/or Epics
This workstream is not broken into milestones, but the parts of the workstream include
Backend: we want to store this similar to what course exporter is doing so it is not fetched every time the page loads. It would be queued through a backend endpoint in edx-platform. If the user is utilizing Course Optimizer, they will want to fetch an updated list of links often. However, we should still require them to click a button to fetch so as not to overload the celery queue. The frontend will check the status of the current task and only allow a new task to start if the previous one finished or errored.
Api endpoints:
link_check/ : Starts link check celery task process. Kicks off a celery task that creates a backend storage record for that course
link_check_status/ : Checks the current status of link_check. Returns status, output link and error message
The following steps are for navigating Modulestore
get course id of the current published version from modulestore.active_versions
use course id to get xblocks ids from modulestore.structures
use xblock ids to get data from modulestore.definitions
find links in the data field and update /static/ links
evaluate if link is broken
return list of broken links with their associated xblock
Named Release
Teak
Timeline (in brief, if a Product Proposal is linked above)
Abstract
This feature would point out where broken links and images within a given course are. This would minimize what we store on our servers, save course teams time, and provide a better learning experience. This was the number one ranked enhancement in an edx.org survey for 2024 by nearly 100 respondents (edX partners). Additionally, this gets us closer to parity with Canvas. They offer a link validator tool in which users can check links, which searches through course content and returns invalid or unresponsive course content links.
Detailed Product Proposal
https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4561043458/Proposal+Course+Optimizer
Context & Background (in brief, if a Product Proposal is linked above)
Often times broken links and images are reported by students to staff. This is an undesired learning experience. Offering authoring teams the ability to know what links are broken and where they are broken within the course would be a positive change in Studio. As mentioned above, this was a very highly ranked potential enhancement based on feedback from edx.org partners in 2024.
Scope & Approach (in brief, if a Product Proposal is linked above)
Assuming the feature is utilized, learners are really the primary beneficiaries as they now encounter better courses that don't have broken links. Course authors also will gain from this feature, though. As mentioned above, this was the number one ranked feature in a survey of nearly 100 edx.org partners. Other potential features that were included in the survey were addressing schedules and dates, Course Outline redesign that would enable various authoring efficiencies, redesigning the drag n drop xblock, folders, customized learning path, and AI based problem sets, to name a few.
Value & Impact (in brief, if a Product Proposal is linked above)
Mostly this will be measured qualitatively. The feedback we have received has been highlighted. We will continue to get feedback and make iterations if necessary. The value to the platform is that it will be easier for course teams to ensure that there are not broken links/images in their courses. And then that value will be passed to students to make for a better learning experience.
Milestones and/or Epics
This workstream is not broken into milestones, but the parts of the workstream include
Backend: we want to store this similar to what course exporter is doing so it is not fetched every time the page loads. It would be queued through a backend endpoint in edx-platform. If the user is utilizing Course Optimizer, they will want to fetch an updated list of links often. However, we should still require them to click a button to fetch so as not to overload the celery queue. The frontend will check the status of the current task and only allow a new task to start if the previous one finished or errored.
Api endpoints:
The following steps are for navigating Modulestore
Named Release
Teak
Timeline (in brief, if a Product Proposal is linked above)
rollout sometime in Q4 2024
Proposed By
2U
Additional Info
No response