Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

The proposed project involves the 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.

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. 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 be able to discover the different global settings options and be able to change them see the status of my platform at a glance in order to optimize the 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.

...

Expand
titleUser Administration

This broad category took about 27% of the support requests, 16% related to LMS users issues and 11% related to Studio permissions. the most common stories in this category are:

  • granting / removing course creator permissions to a user

  • granting course staff permissions to a new user that joined the team or removing them to one that leaves.

  • activating learners that despite having the correct email do not receive the activation email

  • assisting a user with resetting a password

  • assisting users with changing email addresses

  • Deleting user accounts

Expand
titleAnalyics and reports

Nearly 11% of all requests where related to reports and accessing information, for example:

  • Getting platform level metrics overview

  • Getting platform level reports

  • Getting assistance with the existing course level csv reports

  • Custom queries to the database for specific purposes

Expand
titleCertificates configuration

This category gets about 5% 13% or the total number of requests, but Certificates and we often confirm during user interviews that Certificates are very important though.

  • For learners, they attest the completion of the course.

  • For administrators, they can be one of the main metrics of the accomplishment of learner goals and is often coupled with the business model that the initiative is using to support the operations.

Most of the challenges with certificates happen at the administrator level: certificate templates per organization, certificates in multiple languages, gating configurations to be able to access certificates or not, reporting on the total numbers of certificates issued and the specific certificates issued, allowing to integrate certificates with external tools like digital credentials, linkedin, etc.

Example tickets:

  • “The sender is seeking advice on customizing a certificate template.”

  • “I am reaching out to request assistance with editing a certificate template.”

  • “We would like to implement the ‘effort_hours’ attribute in our certificates and need assistance with this customization.”

  • “I am currently working on creating a certificate template and would like some guidance on how to edit specific sections.”

  • “Dear colleagues, Please replace the certificate template with the new design provided in the attachment.

  • “Hello! I worked with you to have a custom certificate created, but it seems there is an issue.”

  • “Hi team, The customer has requested to create a new certificate for their course.”

  • “Hi team! The customer has requested to add a new certificate template for their program.”

  • “We request, if possible, that you create a custom template for our certificates.”

  • “Hi team, The customer has requested to add a new certificate template for their programtraining module.”

  • “We request, if possible, that you create a custom template for our certificates.”

  • “Hi team, The customer has requested to add a new certificate for their training module.”

Other part of the challenges with certificates happen at the course level: configuring a course to offer certificates, configure that particular certificate for the course if needed, issue certificates, etc. These needs will probably best served in studio and not the administrator console.Other part of the challenges with certificates happen at the course level: configuring a course to offer certificates, configure that particular certificate for the course if needed, issue certificates, etc. These needs will probably best served in the instructor dashboard or Studio. and not the administrator console.

Expand
titleAnalyics and reports

Nearly 11% of all requests where related to reports and accessing information, for example:

  • Getting platform level metrics overview

  • Getting platform level reports

  • Getting assistance with the existing course level csv reports

  • Custom queries to the database for specific purposes

Proposed solution

Overview

...

  • 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.

    • be able to “read” or “be aware of” the settings that are not stored in data models, but in lower layers such as django configs or python package entry points.

  • 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

Authors

Proposal prepared by Juan Camilo Montoya and Santiago Suarez . Initial review by Felipe Montoya