edx-proctoring icon indicating copy to clipboard operation
edx-proctoring copied to clipboard

[DEPR]: edx-proctoring frontend

Open michaelroytman opened this issue 1 year ago • 6 comments

Proposal Date

2024-08-21

Target Ticket Acceptance Date

2024-11-21

Earliest Open edX Named Release Without This Functionality

Teak - 2025-04

Rationale

As part of Open edX community's re-platforming effort, Django-server-side rendered frontend implementations are being deprecated in favor of React-based micro-frontend implementations. This ticket covers the code related to the frontend for taking exams (i.e. timed exams, practice exams, proctored exams, and onboarding exams).

For the "happy path" of proctoring, the frontend implementation in edx-proctoring has been replaced by the frontend-lib-special-exams library, which is installed and integrated into the frontend-app-learning MFE.

Removal

The code and assets associated with the frontend implementation for taking exams will be removed.

Below is a non-exhaustive list of code and assets that can be either removed or refactored to remove the frontend.

Replacement

For the "happy path" of proctoring, the frontend implementation in edx-proctoring has been replaced by the frontend-lib-special-exams library, which is installed and integrated into the frontend-app-learning MFE.

There are some exceptions to this coverage. Details will be added shortly.

Deprecation

TBD

Migration

TBD

Additional Info

TBD

Task List

No response

michaelroytman avatar Aug 21 '24 20:08 michaelroytman

There's an additional backend requirement here for authorization (this is the non-happy path). While the learning MFE shouldn't request an exam unit unless that exam is running we still need to prevent users from accessing this content outside of their allotted time by requesting content from LMS directly. This is currently handled by the rendering logic for these templates within edx-proctoring. If this function returns no template the user is assumed to be authorized.

https://github.com/openedx/edx-proctoring/blob/152aa3c955fef0d0f9035acf114d55541844f52e/edx_proctoring/api.py#L2896

I don't think this should be too difficult to separate out, we don't really need the templates themselves to prevent rendering. I just want to call out if we don't replace this logic with something else we'd lose an important but not very obvious auth mechanism.

zacharis278 avatar Aug 26 '24 15:08 zacharis278

@MichaelRoytman Are there any flags that one needs activate in order to switch from the legacy edx-proctoring frontend to frontend-lib-special-exams? Or is it the case that if a site operator sets up proctoring today, it will automatically use frontend-lib-special-exams?

kdmccormick avatar Aug 27 '24 21:08 kdmccormick

@kdmccormick Sorry for the delay! The frontend-lib-special-exams library is integrated directly into the frontend-app-learning MFE, so if a site operator is using the frontend-app-learning MFE, then timed and proctored exams will use the UI defined in that library. The legacy learning experience will use edx-proctoring. There is no other configuration necessary.

michaelroytman avatar Sep 03 '24 17:09 michaelroytman

Great, thanks @MichaelRoytman !

When we go to remove the legacy edx-proctoring frontend, we should check that Studio Course Preview (the only remaining feature which uses legacy courseware) doesn't blow up when it gets to a special exam. Ideally, it should just say something along the lines of "special exams cannot be previewed" or "this feature is not available in preview mode".

kdmccormick avatar Sep 03 '24 17:09 kdmccormick

Linking in the wiki comment thread that led to the creation of this DEPR, with some valuable background info: https://openedx.atlassian.net/wiki/spaces/COMM/pages/4262363137/MFE+Rewrite+Tracker?focusedCommentId=4395532312

kdmccormick avatar Dec 18 '24 15:12 kdmccormick

[inform] This DEPR is in the Draft state. It can't move forward without a DEPR coordinator to help update it to match the updated DEPR template. No action is required, unless anyone wants to move this out of Draft.

robrap avatar May 23 '25 20:05 robrap