feat: add Student Onboarding Status and Review Dashboard to Special Exams#219
feat: add Student Onboarding Status and Review Dashboard to Special Exams#219Anas12091101 wants to merge 1 commit into
Conversation
|
Thanks for the pull request, @Anas12091101! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #219 +/- ##
==========================================
+ Coverage 91.20% 91.30% +0.10%
==========================================
Files 148 150 +2
Lines 2716 2782 +66
Branches 618 649 +31
==========================================
+ Hits 2477 2540 +63
- Misses 231 234 +3
Partials 8 8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
83b0d58 to
b577c45
Compare
b577c45 to
58c1dec
Compare
58c1dec to
cba9fd8
Compare
|
Please let me know when the backend PR that this one depends on is merged, so we can merge it. |
Description
Restores the two Special Exams sections that exist on the legacy (Django-rendered) instructor
dashboard but were missing from this MFE: Student Onboarding Status and Review Dashboard.
The Special Exams tab previously shipped only Exam Attempts and Allowances; this adds the
remaining two as additional tabs.
DataTable(username, enrollment mode, onboarding status, last updated) withusername search and pagination, backed by the edx-proctoring v1 endpoint
GET /api/edx_proctoring/v1/user_onboarding/status/course_id/{courseId}. This endpoint is calleddirectly (the same way the existing "resume attempt" action already calls edx-proctoring v1)
because the onboarding logic is provider-specific and lives in edx-proctoring rather than in a
wrappable library function.
<iframe>pointed atGET /api/edx_proctoring/v1/instructor/{courseId},which the LMS redirects into the proctoring provider's hosted review dashboard. This mirrors the
legacy dashboard's behavior exactly (same iframe/redirect mechanism the Learning and Authoring
MFEs use for embedded LMS content).
Both tabs are provider-gated: they only render when the course's proctoring backend supports
them. Gating uses two new capability flags (
supportsOnboarding,reviewDashboardAvailable)returned by the v2
proctoring_settingsendpoint (see the dependent backend PR). This matches thelegacy dashboard, which showed these sections only for backends that support onboarding / expose a
review dashboard (e.g. Verificient's Proctortrack).
Impacted user roles: Course Team / Instructors (staff) — they regain the two sections in the
new dashboard. Operators — no config change required; behavior is driven entirely by the
course's proctoring provider.
Screenshots:

Supporting information
supports_onboarding/review_dashboard_availabletothe v2
proctoring_settingsendpoint (linked below).Testing instructions
dashboard (e.g. Proctortrack). The course needs an onboarding (practice proctored) exam and
some proctoring-eligible (e.g.
verified) enrollments, ideally with onboarding attempts in a fewstatuses.
status, and last-updated; verify username search and pagination work.
nullbackend) and confirm thetwo tabs are hidden and only Exam Attempts / Allowances show.
Other information
proctoring_settingsendpoint. Without it,
supportsOnboarding/reviewDashboardAvailableare undefined and the twotabs stay hidden (graceful degradation).
When the MFE and LMS share a parent domain (the standard Open edX cookie-domain setup), the session
flows through as it does for the Learning MFE's courseware iframe. If the MFE is served from an
unrelated origin, the provider's own
X-Frame-Options/CSPframe-ancestorsgoverns whether it canbe embedded.
src/testUtils.tsxexposesrenderWithIntl/renderWithQueryClient(there is noinitializeMockshelper here yet); the new tests use these, consistent with every existing suite.Best Practices Checklist
.ts,.tsx).propTypes,defaultProps, andinjectIntlpatterns are not used in any new or modified code.src/testUtils.tsx(specificallyinitializeMocks)apiHooks.tsin this repo for examples.messages.tsfiles have adescriptionfor translators to use.../. To import from parent folders, use@src, e.g.import { initializeMocks } from '@src/testUtils';instead offrom '../../../../testUtils'