Course Visibility on the Catalog MFE Home Page

Context

The new Catalog MFE is currently under active development. Its primary goal is to migrate the existing legacy pages - Home, Course About, and Course Catalog - to modern React-based interfaces. The main purpose of this post is to gather feedback on the course display functionality of the Home page.

Legacy Home Page

On the legacy Home page, learners can see both courses that are still open for enrollment and those whose enrollment period (enrollment_end) has already passed and are no longer relevant.

Technically, the system uses the branding.get_visible_courses function to fetch courses. This function accepts an optional parameter active_only=False, which determines whether to include courses that have already ended. By default, however, it does not apply any filtering based on enrollment dates.

New Home Page

The new Home page, which is part of the Catalog MFE, uses the course_discovery API from the edx-search package to display courses.

A key feature of this API is that it automatically filters courses based on their enrollment end date. Basically, it only returns courses that either have no enrollment end date or whose enrollment period has not yet expired.

As a result, the new Catalog MFE Home page will display only those courses that are still open for enrollment.

Importantly, filtering by enrollment end date cannot be configured via the REST API - in other words, there is no built-in option to toggle the display of only currently not available courses.

Proposal

Given the differences between the legacy Home page and the new Catalog MFE, we propose relying on the enrollment end date filtering that is already implemented in the course_discovery API.
In the current legacy implementation, a learner may come across a course that looks interesting, but enrollment has already closed. This behavior feels counterintuitive and may be confusing for learners.

At the same time, if it is decided that the ability to display courses with expired enrollment periods is necessary, we suggest implementing this via the REST API by adding new parameters for more flexible configuration.
The key question is whether there is a real need for such a toggle, or if it is better to keep the new behavior, which shows only courses that are still open for enrollment.

Feedback

It is important for us to understand how relevant the Home page is for you and which specific use case scenarios you consider essential. This will help us decide whether displaying courses with expired enrollment periods makes sense or not.

We would greatly appreciate your input on the following:

  • Do you use the Home page to search for or browse courses?
  • Is it important for you to be able to see courses whose enrollment period has already ended?
  • Which system behavior would you expect to be most useful?
    • Display all courses, even if the enrollment period has expired.
    • Display only active courses, where enrollment is still open.
    • Provide a toggle/filter in the REST API that allows flexible control over course visibility.

Thank you to everyone who shares their thoughts and experiences. Your feedback will help us make an informed decision and ensure the homepage is more intuitive and useful for learners.

1 Like

I believe it is not logical to display courses with closed enrollment on the Home page, and the proposed change is absolutely reasonable.

From a learner’s perspective, this creates a very unpleasant scenario:

  • They discover an interesting course on the Home page.
  • They go through the registration process, expecting to take it.
  • Once enrolled, they cannot find the course in the /courses catalog because enrollment has already ended.

This disconnect is highly confusing and undermines trust in the platform. Showing only active courses with open enrollment avoids this problem and makes the learner’s journey clearer and more intuitive.

If there is ever a need to access past or closed courses, this can be solved through dedicated filters or pages, but they should not appear by default on the Home page.

1 Like

I agree with @Ihor_Romaniuk and this approach.