Delayed attempts in quizzes

Quiz access rules ::: quizaccess_delayed
Maintained by Juan Pablo de Castro
Control the initial access to a Quiz with a randomized delay to reduce the load at the start and end times. By lightly spreading the access of the students the server load decreases dramatically and the overall capacity of your system increases by orders of magnitude.
Latest release:
560 sites
150 downloads
32 fans
Current versions available: 1

Quiz Access Rule quizaccess_delayed

There is a tutorial page at https://juacas.github.io/quizaccess_delayed/index.html

During the COVID19 epidemic, we had to radically change the way in which the evaluation was carried out. Suddenly, the infrastructure designed for face-to-face teaching had to absorb the burden of a multitude of synchronous questionnaires. This has caused saturation in all Moodle systems.
A measure to mitigate the problem is to control the initial access to a Quiz with a randomized delay to reduce the load at the start and end times. 

It is a module for Moodle platform that makes the “Attempt quiz now” button auto-enable at quiz open timing plus a randomized delay, without requiring to refresh the page.
This is done by a client side countdown timer (javascript) which is initiated when the page is rendered in the browser.
If you enable quiz open time in quiz settings, quiz students will no longer have to manually refresh the
page in order to get “Attempt Quiz Now” button at the quiz open timing.
A random delay up to 10 minutes is assigned to each student for spreading the entry times.


Background and Need

  1. In a quiz with strict time constraints students tend to refresh the page too often, just to make sure if the attempt is available yet.
  2. This unnecessarily increases the server load, and is a problem with large number of students.
  3. Synchronized start of many attempts places a heavy short-time load in the Quiz core engine. By phasing in access, the impact is minimized.
  4. Some questionnaire configurations generate particularly high server loads.
  5. Some quiz schedules generate problems for students.

Solution

The “Activate Delayed Attempt” plugin makes the “Attempt quiz now” button auto-enable at quiz open timing plus a randomized delay, without requiring to refresh the page. This is done by a client side countdown timer (javascript) which is initiated when the page is rendered in the browser.


The plugin is implemented as an access-rule plugin overriding the default activity page render.
The page, displays the time remaining to start the quiz using an animated countdown. A pseudo-random delay is assigned to each student depending on the number of students and a set of site-wide parameters as fixed rate of entry, maximum allowable delay. An optional message for the students can be defined for all quizzes in the platform. An optional check and advice message for teachers can be defined for all quizzes in the platform.


How the delay is calculated

  • The plugin acts only until the instant of the start of the quiz plus the number of minutes of maximum delay. After that it doesn't work anymore because the critical moment of the start is supposed to be over.
  • The maximum delay is calculated as follows:
    • Number of students divided by the entry rate specified by the administrator. E.g. with 25 students/minute, if the course has 200 students, the maximum delay will be 8 minutes.
    • Maximum of 10% of the test duration. We have considered that it is not logical to wait 4 minutes for a 15-minute exam. E.g. 15 minute exam => maximum wait of 1.5 minutes.
    • Maximum time limit defined by the administrator. This is to put a reasonable limit in the case of large groups at the cost of suffering a higher entry fee. E.g. maximum 4 minutes.
    • At least 1 minute. This is to ensure that there is always gradual access. With 1 minute, students do not notice the delay because it is in the range of accuracy of the usual clock.
  • With all these limitations, the final entry rate is the one needed to meet all specifications. In this example it would be 200 students/1.5 minutes = 133 students/minute (about 2 per second). If we want to spit out the input rate we will have to give up the absolute limit or the percentage of the completion time. In the UVa we have decided that a long delay is not functionally admissible in the case of short exams, because it would make some students almost finish and others would still be starting.

How a quiz is marked as "resource-intensive" or "problematic"

In our experience, a mass quiz is "resource-intensive" aka "problematic" when it meets these characteristics:

  • It's paged so that each page will last less than 10 minutes.
  • The time allotted is too tight.
  • The entry rate of students is too high.

The time alloted is considered too tight if

  • The total time allotted is less than:
    • the completion time plus the gradual entry delay plus 10% of the completion time. (An opening of the activity of less than this time does not allow to face the small incidences of any test.)
    • not excess a 20% of the execution time.

Releases

  • v1.2.1 Place advices for the teacher for quizzes that are resource intensives of potentially problematic.
  • v1.2.0 Rule can be enabled/disabled in each instance.
  • v1.1.1b Management controls in system settings.
  • v1.1.1 Animated countdown.
  • v1.1.0 Textual countdowmn.

Installation

  1. Unzip it into /mod/quiz/accessrule/delayed
  2. Log in into Moodle
  3. A notification will appear stating “Plugins requiring attention”.
  4. Complete the installation by clicking on “Upgrade Moodle database now”,click on continue after the success notification appears on the page.

Usage

If you enable quiz open time in quiz settings, quiz students will no longer have to manually refresh the page in order to get “Attempt Quiz Now” button at the quiz open timing. A random delay up to 10 minutes is assigned to each student for spreading the entry times.

Acknowledgements

This plugin is based on the previous work in the quizaccess_activateattempt plugin. Customization by quiz instance code was contributed by Enrique Castro @ULPGC.

This plugin was developed and is being successfully used at the University of Valladolid, Spain.

Potential privacy issues

None.

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3

Contributors

Juan Pablo de Castro (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Giovanni Mancini
    Mon, 4 Oct 2021, 9:14 PM
    Well.
    So, despite being a good plugin, it's not for me. I need to delay access to the quiz for a number of hours after completing the previous scorm module
  • Ricardo Caiado
    Mon, 4 Oct 2021, 10:45 PM
    Giovanni,

    Did you try this?

    https://moodle.org/plugins/availability_relativedate

    Ricardo
  • Giovanni Mancini
    Mon, 4 Oct 2021, 11:12 PM
    Hi Ricardo, Thank you for your suggestion. But even this plugin is not for me. I need to set a particular criterion that allows the user to access the quiz, 12 to 24 hours after completing the previous scorm module.
    The plugin you suggest allows you to set a limit based on course start date or course end date and I don't set this type of deadline on courses. The courses are always accessible
  • Ricardo Caiado
    Mon, 4 Oct 2021, 11:24 PM
    Giovanni,

    Did you try the Foruns?

    Ricardo
  • Giovanni Mancini
    Mon, 4 Oct 2021, 11:39 PM
    Ricardo,
    You mean Community Forums?
  • Ricardo Caiado
    Mon, 4 Oct 2021, 11:48 PM
    Giovanni,

    Yes.

    Ricardo
  • Giovanni Mancini
    Mon, 4 Oct 2021, 11:52 PM
    Ricardo,
    I want to try some existing tools first, I left the request to a forum as a last option. It is not a very urgent thing so before creating a discussion I would like to be able to find something independently
  • Shakeel Arumugam
    Mon, 5 Sep 2022, 6:36 PM
    Hi team this is a great plugin, what is the best configuration of this plugin for 2000 students attempting a quiz at the same time?

  • Juan Pablo de Castro
    Wed, 7 Sep 2022, 8:10 PM
    Hi Shakeel,
    it largely depends on your servers capacity.
    In example, if your servers are able to handle 50 simultaneous connections to a quiz and each quiz is served in 5 seconds, you may be able to handle fairly easy 2000 students by spreading their access over a 4 minutes time window.

    At the end, you'll need some benchmarking or some try and error to find your optimal parameters.
  • Anisa Dewi
    Wed, 19 Oct 2022, 8:10 PM
    Hello,
    thank you for any contributions for this great plugin.
    I would like to know, did you plan a new release for Moodle 4.x and when will it be published?

    Best regards,
    Anisa
  • Juan Pablo de Castro
    Thu, 20 Oct 2022, 7:51 PM
    Hello Anisa, thanks for notifying.
    I forgot to update the compatibility list of the plugin. It is fully compliant with 4.0 and now the compatibility is correctly configured.
  • Hirad F
    Sun, 30 Oct 2022, 3:05 PM
    Hi and thanks for this great plugin. I've got a Q: I enabled this plugin through admin page, But, there happened nothing! When I open quizzes/create new ones, no such a timer is displayed. Is there anything else I need to activate in order to start using this plugin? After activating it through admin page, is there any options added to Quiz setting in order for me to get started? I'm confused...
  • Juan Pablo de Castro
    Sun, 30 Oct 2022, 4:25 PM
    Hi,
    To enable the plugin for all quizzes go to the general settings admin/settings.php?section=modsettingsquizcatdelayed and un-mark de checkbox "The teachers are allowed to disable the rule" so the teachers can't choose whether to use or not the plugin.
    To enable the plugin in a quiz, just edit the settings of that quiz and mark the checkbox into "Extra restrictions on attempts" (and set a starting and ending time.)
  • P H
    Tue, 28 Feb 2023, 6:24 PM
    Hello,
    Has this plugin been tested on Moodle 4.1?
    Regards
  • Juan Pablo de Castro
    Tue, 28 Feb 2023, 7:51 PM
    Yes it is!
    Greetings.
1 2 3
Please login to post comments