Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-47688

Use ajax + client storage so that users can continue to work on their quiz even if they lose network connection

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • 2.7.2
    • Quiz
    • MOODLE_27_STABLE

      This follows on from server-side autosave: MDL-38538 and client-side autosave: MDL-38537.

      The focus will be on deferred feedback quizzes. That is, the focus is on allowing the students to continue to input their responses to all questions in a multi-page quiz when offline, and later have the reposes sent back to the server. The issue is not about generating immediate feedback on the client side.

      The idea is that, as well as storing the student's response to every question on the current page in client storage, we also store the rendered HTML of the body of each page. Then, students can switch between pages (having any more recent attempt data pulled out of the client-side auto-save) and input all their responses.

      Later, when the internet connection is back, we can send al the responses to the server.

      As well as robustness (assuming that we can make this work reliably) this would also have the benefit that switching between pages of the quiz is instant.

      Finally, as a backup (suppose the network is completely fried) when there is unsaved data on the client, we will provide a backup way of getting the responses out. The general approach to this will be to have JavaScript write a download link with a data: URL. When you click that link, you will get an ordinary file download, which can be saved to a USB pen drive, or similar.

      Because this may be used for exams, we will provide an option to encrypt that download. (Probably some sort of public-key encryption, so the file can only be uploaded to the original Moodle site.)

      We will also need a script (quiz report?) which can be used to upload these saved responses.

            Unassigned Unassigned
            timhunt Tim Hunt
            Votes:
            25 Vote for this issue
            Watchers:
            22 Start watching this issue

              Created:
              Updated:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.