Activities: E-Voting

Maintained by Picture of Christophe Hadorn Christophe Hadorn
The E-Voting activity module enables students to vote via their smartphone or their laptop and to have the results displayed on a graph in real time.
49 sites
10 fans

The E-Voting activity module enables students to vote via their smartphone or their laptop and to have the results displayed on a graph in real time.

The E-Voting activity is ideal to capture the attention of wide groups. It increases interactions between "Professors-Students". Therefore, it supports a flipped class type of activity.

E-voting can be used in class to check knowledge at the end of a course or to animate theoretical presentations.


  1. As a teacher, on your course, turn editing on
  2. Add an activity or resource
  3. Select E-Voting
  4. Fill the form to create a new E-Voting poll
  5. On the E-Voting page, Click on the QR Code to show it bigger
  6. Your students in class shall have the option for seeing the vote panel to:
    • scan this QR Code with a QR Code reader installed on their Smartphone
    • access with URL above the QR Code
    • click on the activity in the course page
  7. Click "Start button" to start the e-voting poll (you can select if you want time for voting or not)
  8. Only at this moment, your student can vote with Smartphone, laptop, ...
  9. When you want to stop the poll, click the "Stop button"


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5


Picture of Christophe Hadorn
Christophe Hadorn (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Plugins bot
    Wed, 24 Aug 2016, 8:58 PM
  • Picture of David Mudrák
    Fri, 26 Aug 2016, 7:10 PM

    Hi Christophe, and thanks for sharing this module with the community. The offered functionality looks very promising and useful, and I really like the overall workflow. I can imagine the teachers in classrooms, but also presenters on conferences or at meetings will find a tool like this really useful and cost effective as there is no need to purchase special voting devices.

    However, the actual implementation of these nice features is not that nice and needs a lot of improvements. Not only you do not follow the recommended coding guidelines for Moodle. But the code lacks even basic security features for any web application. You basically allow any user on the internet (even anonymous) to execute database queries such as deleting the voting history or resetting the polling or even deleting the poll questions.

    There is no authentication of the users, no authorisation of the requests, no XSS or CSRF protection whatsoever. Please let me suggest to get more familiar with Moodle development and improve this otherwise well intended plugin first. At the moment, we can't accept a code like this here. Thank you for understanding.

  • Picture of David Mudrák
    Fri, 30 Sep 2016, 10:12 PM

    Thanks for a new version. Can you please summarise and shortly describe the changes in it? It seems that the release notes just copy the plugin description with no actual information of the changes / improvements in the release.

  • Picture of Plugins bot
    Fri, 30 Sep 2016, 10:15 PM
  • Picture of Christophe Hadorn
    Mon, 3 Oct 2016, 3:00 PM
    Hi, principally we add more security :
    - use session key, check ajax call, use require_parameter / opional_parameter method. with ajax call for anonymous user and too require_login / isLoggin() for authenticate user.
  • Picture of David Mudrák
    Fri, 4 Nov 2016, 11:21 PM

    Thanks for uploading a new version. However I don't think it is much closer to being accepted for now, to be honest. I reported more details into separate issues in your bug tracker. There are some significant bugs - like a lack of authorisation for certain operations where one would expect it (sesskey confirmation protects from cross site request forgery, it is important to understand what it does and does not). Other things like hard-coded prefix of database tables in SQL queries may make the plugin unusable on many sites. I must mark this as needing more again, thanks for understanding.

  • Picture of Christophe Hadorn
    Wed, 30 Nov 2016, 7:02 PM
    New version fix some bugs / best practices :
    - choice limit settings at site level
    - improve authorisation with ajax
    - rename prefix functions and prefix tables
    - some minor improvement (access session variables, lang detection, etc.)
    - bug fix jquery
  • Picture of David Mudrák
    Fri, 16 Dec 2016, 6:29 AM

    Thanks Christophe.

  • Picture of César Marques
    Thu, 22 Dec 2016, 6:32 PM

    I'm having some problems creating the QR Code. The QR Code does not appearing... If I try to see only the QR Code image (mouse right key), I receive this message:

    "en: malformed 'create-qr-code' API request. Please consider the API
    documentation at

    de: ungültige 'create-qr-code'-API-Anfrage. Bitte beachten Sie die
    API-Dokumenation unter"

    Can you help me?

  • Picture of Christophe Hadorn
    Thu, 22 Dec 2016, 7:55 PM
    If the QR Code doesn't appear :

    You can try this :


    line 59 (replace content by) :
    define('QRCODE_URL', $protocol . $path ."/". QRCODE_URL_LINK);

    Line 93 (replace content by) :
    $qrCodeS = "" . urlencode(QRCODE_URL) ."&qzone=1&margin=0&size=60x60&ecc=L";

    Line 108 (replace content by) :
    $qrCode = "" . urlencode(QRCODE_URL) ."&qzone=1&margin=0&size=400x400&ecc=L";

    Keep me in touch,

  • Picture of Christophe Hadorn
    Thu, 22 Dec 2016, 11:22 PM
    The version v3.1.1-r6 fix this issue
  • Picture of Kees Koopman
    Sun, 8 Jan 2017, 2:49 AM
    Hi Christophe,

    I experience a problem with the QR-code-link en the link itself.
    They links me to http://mysite.etc instead of httpS://mysite.etc.

    What do I wrong? Can you fix it?

  • Picture of Christophe Hadorn
    Wed, 11 Jan 2017, 5:28 PM
    The version v3.1.1-r7 fix this issue
  • Picture of David Boggs
    Fri, 20 Jan 2017, 9:52 AM
    I didn't have much success with this plug-in on the adaptable theme, install when well, then added to the frontpage and a course. The configuration fields were all over the place, gray box at top of page pushed fields into the footer, and fields overlayed with other fields. Uninstalling the plug-in at least worked. I am on 3.1
  • Picture of Christophe Hadorn
    Fri, 20 Jan 2017, 11:07 PM
    Hi David,

    To fix the issue on the adaptable theme, you can comment these lines on file style.css on evoting folder and clear cache in Moodle.

    body.path-mod-evoting .container {
    display: table;
    width: 100%;
    height: 33.3%;
    padding: 0px;

    body.path-mod-evoting .container div {
    display: table-cell;
    text-align: center;
    height: 100%;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    width: 50%

    When I have more time, I will upload a new version with some improvement.
Please login to post comments