Skip to content

feat: add ProgramList page#3

Merged
MaxFrank13 merged 10 commits intoprogram-dashboard-featurefrom
mfrank/add-program-list-page
Oct 27, 2025
Merged

feat: add ProgramList page#3
MaxFrank13 merged 10 commits intoprogram-dashboard-featurefrom
mfrank/add-program-list-page

Conversation

@MaxFrank13
Copy link
Copy Markdown
Member

@MaxFrank13 MaxFrank13 commented Oct 21, 2025

Program Page

Adds the Program List page. This renders a Paragon Card component for each Program that the learner has enrolled in. There is also a call-to-action component that directs users to the open courses search page. This page is locked behind the ENABLE_PROGRAM_DASHBOARD configuration variable. See below for more details on what's included in this PR.

Legacy view in edx-platform:

Screenshot 2025-10-21 at 3 41 19 PM

New view in Learner Dashboard:

Screenshot 2025-10-21 at 4 07 28 PM

Enterprise view from frontend-app-learner-portal-enterprise that was used for prior art:

Screenshot 2025-10-21 at 3 42 25 PM

Covered in this PR

Adds the ENABLE_PROGRAM_DASHBOARD environment variable

  • We could in theory use the ENABLE_PROGRAMS environment variable that already exists
  • Using the current variable is nice because it means one less variable to monitor; it is however potentially problematic if a consumer wants to enable programs but still use the old dashboard

Add a Program Dashboard route as well as a Program Details route

  • We need two routes to render two different views at their own URL
  • They are both locked behind the ENABLE_PROGRAM_DASHBOARD environment variable

Adding Routes required that some modifications be made to other parts of the code

  • Previously, the Dashboard homepage was treated as the sole page for Learner Dashboard, see changes where <AppWrapper /> and <FooterSlot /> both previously resided in the App.jsx file. The App.jsx file is what controls the rendering of the Home page (it should probably have a different name)
  • <AppWrapper /> did literally nothing but pass through the children -- see this PR for original intentions. Those intentions are rendered obsolete with frontend-plugin-framework and the eventual arrival of frontend-base -- it's been removed completely.
  • <FooterSlot />, as well as all of the Routes, now live in the index.jsx file

Removing NoticesWrapper -- this is something that will be done upstream by the time this Program Dashboard is set to merge there

  • It can be safely ignored in this PR as it does nothing to the ProgramDashboard
  • It was removed while adding the routes

renovate bot and others added 8 commits October 6, 2025 06:04
…penedx#728)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@MaxFrank13 MaxFrank13 force-pushed the mfrank/add-program-list-page branch from 6cb7bb3 to 6b99660 Compare October 21, 2025 20:06
Copy link
Copy Markdown
Member

@deborahgu deborahgu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks great to me. A couple of things we discussed while we paired over this:

  • when you PR to master we can discuss with Axim about different proposals for making this optional during a depr period, including:
    • waffle flag
    • putting a plugin slot around the header, so people can replace the header with one that just links to the legacy page
    • not bothering, because the only instance that deploys off of master doesn't use the program dashboard, and we are doing a one to one replacement
  • in a later PR you are planning on adding an error response to the API exception handler

@MaxFrank13 MaxFrank13 merged commit dd38aff into program-dashboard-feature Oct 27, 2025
3 checks passed
@MaxFrank13 MaxFrank13 deleted the mfrank/add-program-list-page branch October 27, 2025 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants