Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

View the Github ticket for proposal status updates

Overview:

The proposed project involves the creation of an administrator console for the Open edX platform, a dedicated interface for site administrators to manage and configure their Open edX instances. While the platform currently provides LMS for learners and Studio for course authors, there is a gap in the administrative capabilities that calls for a separate, user-friendly console.

...

  • There is currently no unified place to manage configurations and day to day operations, and some of these things need to happen anyways, leaving the administrator with a scattered set of mechanisms, including altering model records via the multiple Django sysadmin consoles, doing things via Command line interfaces, changing configuration files and redeploying the applications etc. For some important operations there isn't even a way of getting things done. This increases complexity, limits adoption and success with the platform.

  • Regardless of how it is done, you currently need superadmin permissions to make any configuration changes, and this is too much clearance in some cases. For example, in order to unlock a user that for some reason did not get the activation email, you need to have staff access and this ends up in a situation where there are many users with unnecesary broadl broad levels of access.

  • Some of the functionality or additional extensions that are built for the platform will need a place for their platform level configurations to be handled, and since this currently does not exists, different solutions will try to solve this need in different ways, adding unnecesary complexity to the platform and reducing the likelihood of adoption.

Key Use cases

  • As a platform administrator I need to see the status of my platform at a glance in order to understand the landscape and identify improvement opportunities, for example see what release is currently running, what xblocks are installed, where is the studio application parked, whether or not it has Aspects/discovery/credentials and where are they it parked, what theme is being used, branding package, paragon variables, etc.

  • As a platform administrator, I need to be able to discover the different global settings options and be able to change them in order to optimize the adaptation of the platform to my specific needs.

  • As a platform administrator I need to be able to configure and reconfigure some of the features in the platform without the need of redeploying the application, this increases exploration and usage of the advanced features and increases overall efficiency.

  • As a program manager, I need to create new organizations or manage the existing ones and also configure the certificate templates applied to each organization.

  • As a program manager, I need to grant my instructors with course creation permissions or remove course creation permissions for users that should no longer have them.

  • As a program manager, I need to check what courses a particular instructor is assigned to in order to be able to oversee their activity.

  • As a program manager I need to be able to do certain day to day operations with my user records in order to be able to support users and maintain control of the operation, for example, force reset a user password, activate a user manually, unlock users after they have tried the wrong password too many times, process account removals, batch import user accounts, etc.

  • As a program manager I need to be able to access some aggregated reports about the operation of the courses under my administration.

  • As a platform administrator I need a place to find and manage some key admin operations such as viewing the status of async tasks, checking for security updates, viewing the application logs, running django commands, etc. This allows me to efficiently manage the platform, resolve issues, maintain data security compliance and more.

...

  • The “admin core component will need to have the following capabilities.

    • be able to access the different models in lms and studio

    • be able to access the different models in all the openedx services (credentials or discovery), to enable the extensions posibilities in the admin console.

  • TBD - comments and contributions are most welcome

UX / UI considerations

  • The UX / UI should be simple and convenient for administrators, who are often used to handling this kind of consoles in many other applications.

  • The UX / UI should be able to accomodate all the flexibility that comes with the “core + extensions” approach.

    • Include any UX/UI designs. COMING SOON.

    • Proposed plan for any relevant usability/UX testing

Other approaches considered

...

Expand
titleHow does Moodle face this challenge

In moodle, the LMS, the authoring platform and the administration console are all part of the same web application.

image-20240815-170928.png

This interface has a search function that filters all the settings by keywords and presents a list of search results that can directly be interacted with, and a save button for applying the changes made in any of the components of the search results page. This eliminates the need to navigate to a different page for each of the components you want to alter.

image-20240815-171901.png

some of the more elaborated interfaces, even after apperaring in the search results page, will need the user to navigate to a dedicated page, for example this is the page where ad administrator will list and manage users:

image-20240815-192542.png

a few elements of this interface worth hightlight:

  • there is a breadcrum navigation to locate this page in the structure of administration pages or go to the parent category

  • there is the option to manually add a new user

  • Filters can be applied to the list

  • each learner listed has an action(s) button (edit)

  • multiple users can be selected and the same action can be applied to all of them (similar to the way wordpress does)

  • you can download the list of learners in a number of different formats

other pieces that are also complex will have different intefaces, for example here is how roles are assigned to users:

image-20240815-193649.png

moreover, some settings can be defined at different levels, with the setting at the parent level being imposed or being the default for the lower level. (example rss enablements TBD).

Expand
titleHow does Canvas face this challenge

In Canvas, the LMS, the authoring platform and the administration console are all part of the same web application. In Canvas, a user can be granted “subaccount administration”

image-20240816-155240.png

Administrators can find a specific user (learner or instructor) and find out what courses they have assigned and the pages they have viewed. They can also email them from the application.

image-20240816-160403.png

...

Plan for long-term ownership/maintainership

  • TBD - comments and contributions are most welcome

Open questions for rollout/releases

  • TBD - comments and contributions are most welcome