learningequality / kolibri

Kolibri Learning Platform: the offline app for universal education
https://learningequality.org/kolibri/
MIT License
815 stars 693 forks source link

Proper learner notification that the assignments are incoming #11530

Open radinamatic opened 1 year ago

radinamatic commented 1 year ago

Observed behavior

There has been some work on this front, but is still not offering the best user experience.

In the most recent testing with syncing 1 lesson and 1 quiz from a Windows 10 server device to an Android 13 LoD, it took almost 6 minutes for those 2 assignments that together weigh 4MB to appear on LoD, after the initial LoD setup and user import. All that time learner can keep trying to open the Home screen but would just be forwarded to the Library screen, which is very frustrating 😞 Sometime at minute 5:30 finally something appears in the Home screen, but then the notification banner Some resources are missing or unsupported was visible, when instead, until the resources download is completed, banner The device is currently syncing should be displayed, if I understood previous decision correctly.

All this happens in my own separate, very strong and un-crowded testing network, and my concern this situation will only be worse in production environments with low resource APs and routers, with many LoDs trying to download even heavier assignment resources from the server device.

Errors and logs

Logs & DBs attached in this PR.

Expected behavior

Learner should have a proper notification on the Home screen that assignments (lessons and quizzes) are incoming, and that syncing of resources is underway. Maybe even adding a loader if possible...?

User-facing consequences

Confusion and frustration that the assigned lessons and quizzes are not appearing on the learner devices.

Steps to reproduce

  1. Create a user, class, and assign a lesson and a quiz to it on the server device.
  2. Setup LoD and import the user.
  3. Observe how long it takes for the lesson and quiz to appear and be accessible on LoD's Home screen.

Context

Windows 10 server and Android 13 phone LoD, assets from this PR.

cc @marcellamaki @rtibbles

marcellamaki commented 1 year ago

As some "what to dos" as discussed with Richard

just be forwarded to the Library screen

The redirect condition should be relaxed to check not just for channels existing on the device but also for classes

the notification banner Some resources are missing or unsupported was visible, when instead, until the resources download is completed, banner The device is currently syncing should be displayed

The user sync status endpoint should be updated to check if there are any outstanding content requests before the sync status is "completed"

marcellamaki commented 1 year ago

I am moving this into planned patch 1 as we think that it either should be incidentally resolved with syncing improvements, or if there are specific edge cases that remain, that they are difficult to reproduce and not release blocking.

After comparing the logs with the reported behavior and video, @bjester did also confirm that the UI is actually correctly reporting an error state, as the sync was in an error state (which resumed), which lead to both the "missing resources" message as well as the long time for syncing.

This issue can be updated, closed, or reprioritized as part of the integration testing, as needed.

pcenov commented 3 months ago

Hi @radinamatic here's what I am observing while testing using the latest Kolibri 0.17 RC 2 build:

  1. Currently syncing is working correctly, it seems that we are just not informing the learner in the best possible way what is happening.
  2. The notification that there is some sort of syncing going on is visible only when the user expands the menu and it's not informative enough. Other than that:

https://github.com/user-attachments/assets/83e6d63a-e552-4638-a93b-374f05eb4904

https://github.com/user-attachments/assets/c05d1867-2db7-4ef9-ac93-0a33b88d221b