Project - Mobile Dates & Calendar Personalization
œStatus | COMPLETE |
---|---|
Contributing Team | @Marco Morales |
Earlier Discovery |
|
Linked Initiatives | FC-0034 (Product / Design definition) |
Overview | This initiative introduces an integrated in-app dates feature to our mobile applications, enhancing user engagement with course schedules. Users have the ability to sync these schedules (in bulk or course by course) with their personal calendars, ensuring they receive real-time updates on course changes, timely notifications for upcoming deadlines, and automatic schedule adjustments if a due date is missed. Within the app, these dates link directly to relevant course materials, offering streamlined access to content. Additionally, users can adjust course deadlines and set personalized course goals. |
Overview
This initiative introduces an integrated in-app dates feature to our mobile applications, enhancing user engagement with course schedules. Users have the ability to sync these schedules (in bulk or course by course) with their personal calendars, ensuring they receive real-time updates on course changes, timely notifications for upcoming deadlines, and automatic schedule adjustments if a due date is missed. Within the app, these dates link directly to relevant course materials, offering streamlined access to content. Additionally, users can adjust course deadlines and set personalized course goals.
Key Use Cases
As a learner, I can effortlessly sync my course schedules with my personal calendar through easy-to-navigate app settings. I receive real-time updates, direct content access, and maintain an organized view by managing course visibility. Individual course control enhances my experience, keeping me aligned with my educational timelines.
As a provider, I facilitate a comprehensive calendar integration for learners, enriching their academic experience. This integration not only enhances user engagement but also ensures learners are continuously informed, granting them the autonomy to personalize their study timelines and interact with course content in a streamlined manner.
Deliverables
Stage 1: App-Level Dates Settings This stage lays the groundwork for the entire calendar functionality within the app. We will establish the core infrastructure necessary for syncing with external calendars. A new date settings area will be added to Account Settings and be updated as preferences for calendar syncing, course visibility, and automatic calendar cleaning are introduced. As detailed in future stages, we will need the ability to sync course dates for students into a calendar format / feed that learners can have calendars linked to their account.
Stage 2: Personal Calendar Syncing and Management Next is the ability to sync events to personal account calendars from the account settings page. A dedicated single calendar for a given learning site is created that can stay up to date with relevant event data based on learner settings. This stage involves creating a new calendar on the chosen account (iCloud / Google), with initial options for calendar management.
Not clear if it is possible to have events sync to an existing calendar, leaving this here in case technical discovery makes this possible, if not we will go with the new calendar option instead.
Stage 4: Course Level Dates Page From a course dates page learners can enable the calendar syncing functionality as well. The dates page itself allows learners to view all course deadlines in one place with links directly to the relevant content associated with a date. The calendar syncing workflow from stage 2 is connected to this, with additional course level controls such as the ability to stop syncing just a specific course’s dates into the learning site calendar.
Stage 3: App Level Dates From an app level dates page, upcoming deadlines across all enrolled courses are shown, with options for hiding / removing course dates from view + calendar sync. Direct links to associated content with deadlines is possible also from this screen.
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 |
Ability for learners to sync educational schedules with personal external calendars. | Interactive Calendar Layouts: Proposals for daily, weekly, or monthly interactive calendar views within the app are considered future enhancements and are not part of the initial development phase. |
Implementation of app-level settings enabling users to control calendar synchronization preferences, course deadline visibility, and ability to automate removal of past courses from the calendar view. |
|
Ability to view and manage course-specific deadlines and events, including the option to enable or disable calendar syncing for individual courses, providing a more granular level of control over calendar content. |
|
App level dates view presenting users with all deadlines across all enrolled courses. |
|
Ensuring that any changes made in the course schedules, user preferences, or app settings are immediately reflected in the user's personal calendar and the app's calendar page. |
|
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 |
App Level Date Settings View | The "App Level Dates Settings" is a centralized feature allowing users to manage various aspects of their dates / calendar experience within the learning platform. This includes syncing preferences with external calendars, visibility controls for course deadlines, and archival settings for course calendars post-completion. Requirements
Experience Suggestions / Notes
|
Calendar Syncing | This control is accessible from the date settings page, and initiates the workflow for students syncing course / learning product level dates into a calendar of their choosing. Current focus is on adding events to a new calendar that can be renamed in either an iCloud / Google / OS level account.
|
Automatic Sync for New Courses | After the initial sync setup, the system automatically recognizes the user's sync preferences for future course enrollments. This means:
A setting should be added to app level settings for Automatic Date Syncing that is default on but can be turned off, keeping new enrollments not syncing their dates unless they are added manually from app level settings or the course level dates tab. |
Calendar Sync Toggling | If a user decides to toggle the app level calendar sync off, this action temporarily halts the automatic synchronization of course calendars with their personal calendar. Events and deadlines from courses enrolled during this period will not be synced to the user's personal calendar until they re- enable the feature. When the user toggles the sync back on, the system behaves as follows:
|