Overview
Augmenting the new mobile applications with the ability to support multiple learning sites simultaneously will allow the mobile application to be deployed by providers (or Axim via an Open edX app) as a central lower cost option for clients that would not opt for a custom built mobile application.Key Use Cases
As an Open edX provider, I would like to offer Open edX hosting instance clients a low cost mobile offering.
As a learner I can download my provider’s mobile application and select my learning site in order to learn on the go with my mobile devices.
Deliverables
Stage 1 - Learning Site Configuration / Loading
The ability to enable the learning site feature on the mobile application, with the ability to load a given theme and necessary configuration to fully theme the application as needed. Core infrastructure, storage, configuration protocols, etc would be delivered.
Stage 2 - Learner Site Selection
Basic ability to load a single learning site from the selection screen and load the theme (delivered in stage 1).
Stage 3 - Platform Deep Linking to Site Selection
Ability to deep link from various platform locations (site footer, site email footer, etc) for mobile applications with learning site selection step enabled to deep link to app and learning site selection confirmation page.
Stage 4 - Learning Site Switch
Ability for learners to switch their learning site after selecting it, and the necessary navigation changes in the application including the separation of the profile and the app settings.
Stage 5 - Deeper Branding Options
May consider exploring ways to bundle in a custom learning site app logo, or even streamlined shortcut creation for the app to show a custom learning site logo and name.
Users
App Provider: Any group building the new mobile applications for other site operators / learning academies using Open edX.
Learner: Any Open edX instance learner whose learning site relies on a multi-tenant app build model.
In Scope / Out of Scope
Based on the above use cases, we are breaking down on high-level scope as follows:
In Scope | Out of Scope |
Capabilities in the mobile application that would allow an Open edX provider to build a single mobile application for multiple learning sites. | Whether or not Axim considers an Open edX mobile application is not in scope for this effort. |
A mechanism for a mobile application to request configuration details from learning sites to correctly load necessary mobile configuration details. | A centralized Open edX learning site directory of learning sites / mobile app configuration details. |
Deep-linking support in the mobile applications that can process learning site selection requests to streamline learner usage of a mobile application build with learning academy selection enabled. | |
The ability for learners to switch their learning academy from the app settings area. |
MVP Specs
Features & Requirements
In order to realize this MVP, we believe the following features will be required. Refer to the following flow chart for more details:
Feature | Requirements |
Learning Site Selection Feature Configuration | Open edX app builds will be able to enable the learning site feature to:
This entire capability should be behind a feature flag / toggle. |
Learning Site Selection Screen | Learners will see the site selection screen on app load when this feature is enabled and no learning site has been selected yet. |
Can’t find your site - Help and Support | Link to page specifying how to find your learning site, with help / email link configured to open email in default email app for mobile OS with contact email linked. |
Learning Site Directory - Configuration Load | For each learning site linked to an application, all necessary configuration should be retrieved (or already available in the mobile build.) A directory of learning sites should be included in the application with all necessary configuration details for known learning sites enabled in that app. As a nice to have, it would be nice to keep the latest version of this directory in a server (not just in the build of the app) so that the mobile application can receive updated information to account for configuration errors or updates from the latest directory, such as new sites. A specific listing of which parameters will be necessary / enabled in the directory is still TBD. Directory Fields:
Private + Public Directory Listings We may want to account for sites that do not want to be listed in the search / discovery flow for this step. The only way to link your account to this type of learning site would be be via a deep link or some other kind of code entry? |
Learning Site - Cached Assets and Configuration | When a learning site is selected, students should be taken to the main home page for their selected learning site. |
Application Navigation Changes | As part of this change, we plan to separate profile details (who I am as a learner) with application settings (controls and configuration). The profile is elevated to being a main core navigation page along with Courses, Programs, Discovery, (plus Profile). The App Settings page in the top right will remain, but link to a full in-app page. The Learning Site selection setting will be shown at the top if this feature is enabled. (Additional notes for this in the next row.) |
App Settings - Learning Site Section | When this feature is enabled, learners will be able to see the learning site they have enabled at the top of their app settings. Clicking on this row will take learners to the learning site switch screen. |
Technical Open Questions
We anticipate the following to some of the key questions that we will need answered during technical discovery.
[Required] How will a learning site directory be maintained by the app provider? Is this a centralized directory / database on a single open edX instance? Is this a standalone service that the mobile apps can connect to?
[Nice to Have only] Is it possible to use app shortcuts (iOS) or other mechanisms to allow for the app to have its icon and app name be updated to the learning site name easily?
How will the application get the OAuth client? Securely fetch from a Learning Site or bundled to the app?
If a user is connected to more than one learning site, should they receive push notifications from all of them or only from the active learning site?
How can an app provider guarantee compatibility between a learning site and the application?
Open Tasks
- Volodymyr Chekyrta Technical discovery + development scope estimates for each stage / deliverable
- Marco Morales medium fidelity wireframes for these updates (any additional design / product scope estimate as necessary)
Product & UX/UI FAQ
The following represent our Product view of key questions. However, we look to the UX/UI and technical teams to validate these as needed.
Q: No questions yet!
A:
Future Direction
No notes included for this project.