I have tried looking around in the documentation, but did not know exactly what to look for. I just want to know how the moodle app (desktop and mobile) technically exports the data on the learner from the app to the installation.
- Does the learner have to do anything actively themselves to get the data exported?
- Does the app have to be open for it to happen?
- If it checks automatically if a learner has completed parts of a course, how often does it do so?
If the answers are somewhere to be found already - I apologise in advance.
sorry for the delay in answering, it's been some crazy months lately.
When you say "export the data", you mean sending the data generated in the app to the server?
If so, this is the answer:
- If the user is online, the data is sent as soon as it's generated. So for example if a user is attempting a quiz, then the answers will be sent when the user changes page, leaves the quiz or every certain time (auto-save).
- If the user is offline then the app will store the generated data in the device, and it will try to send it automatically every certain time. Please notice that each activity will have its own time to send the data, so some activities could take more time than others. The requirements for this to happen depends on the platform:
- In Android and Desktop the app needs to be open but it can be in background.
- In iOS the app needs to be open and in foreground (iOS freezes the app when it's sent to background).
Please notice that the "view" log events aren't stored in offline, so if a user views an activity in offline then the server is not going to receive the event that the book was viewed (this is something we need to improve).
Also, users can force sending the data of a certain activity by opening that activity in online or clicking the "Synchronize" option in the top right menu of the activity entry page. This will only synchronize that activity. So for example if a user attempted two SCORMs (A and B) in offline and now he's in the entry page of the SCORM B. He goes back online, opens the top right menu and click "Synchronize". The data of the SCORM B will be sent to the server, but not SCORM A (this will be sent automatically unless the user opens it in online).