danmarsden / moodle-mod_attendance

Allows an attendance log to be kept in Moodle
https://moodle.org/plugins/mod_attendance
64 stars 156 forks source link

Add option to include QR code on student password page to speed up attendance-marking #323

Closed ecampbell closed 6 years ago

ecampbell commented 6 years ago

It would be nice if the password page included a QR code when displaying the password for students to mark themselves present in a class. The QR code could include the complete URL required, as well as the password and session ID, so that a student could point their smartphone camera at it, and the phone would then prompt them to open the exact page in their browser to mark themselves present. They would need to log in to Moodle first, but this would be easy if they have saved their login and password. See how to read QR codes on a smartphone.

danmarsden commented 6 years ago

Thanks @ecampbell - couple of things I'd like to see in this patch - (let me know if you don't have time to work on this further though, as I might try to pick it up.)

1) lets just modify attendance.php to check if qrcodes are in use and stop checking for sesskey rather than write a new attendance_qr.php file to do handle the qr code request.

2) on the form used by the teacher to set up the session by the qrcode checkbox if local_qrlinks is not installed we should display a message to the teacher to say the qrcode will be generated by goQR API - we should also include a link to http://goqr.me/ in that text so teachers can find out more.

3) I'd like to put some form of warning in place for site admins when qrlinks is not installed to say that the qrcode generation happens via a 3rd party site, and that it would be better to install the qrlinks plugin to avoid this. - Don't worry too much about adding this - I'm not completely sure on the best way to add this and I can do it later.

does that make sense?

ecampbell commented 6 years ago

Hi Dan, Thanks for taking a closer look at this. Your suggestions make sense to me. I will attempt to modify attendance.php to incorporate qr codes and keep you posted.

On 4 September 2018 at 03:54, Dan Marsden notifications@github.com wrote:

Thanks @ecampbell https://github.com/ecampbell - couple of things I'd like to see in this patch - (let me know if you don't have time to work on this further though, as I might try to pick it up.)

1.

lets just modify attendance.php to check if qrcodes are in use and stop checking for sesskey rather than write a new attendance_qr.php file to do handle the qr code request. 2.

on the form used by the teacher to set up the session by the qrcode checkbox if local_qrlinks is not installed we should display a message to the teacher to say the qrcode will be generated by goQR API - we should also include a link to http://goqr.me/ in that text so teachers can find out more. 3.

I'd like to put some form of warning in place for site admins when qrlinks is not installed to say that the qrcode generation happens via a 3rd party site, and that it would be better to install the qrlinks plugin to avoid this. - Don't worry too much about adding this - I'm not completely sure on the best way to add this and I can do it later.

does that make sense?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/danmarsden/moodle-mod_attendance/issues/323#issuecomment-418226237, or mute the thread https://github.com/notifications/unsubscribe-auth/AA0DjCHD1bT66fsa5Ncj_bvqdq0RKyi4ks5uXetRgaJpZM4WH35z .

-- Eoin Campbell

danmarsden commented 6 years ago

Hi @ecampbell - I had a quick look at this today - rebased your commits and added a few more changes - the current work is here: https://github.com/danmarsden/moodle-mod_attendance/tree/qrcodes

ran out of time to keep going on it today, but may look at it further later.

I noticed your existing code requires autoassignstatus to be set so I've made a few changes to the UI to make that clear, but we can probably add support for when autoassignstatus is not set by prefilling the password field with the password that comes through.

thanks for sharing the work so far - I can see this being quite useful! - In future I could see us regenerating the qrcode every 5 seconds (when the local plugin is installed) to help prevent students from sending the photo to their friends who may not be in the room at the time... :-)

danmarsden commented 6 years ago

found some more time to tidy it up - all updated code in that qrcodes branch - just doing some more testing and will merge into the master branch! - thanks for your work!

ecampbell commented 6 years ago

Great, many thanks for taking this up. I started doing some work to address the points you raised last week, but then got snowed under inducting our new students for this academic year.

I look forward to seeing it released, because I think it will be a good alternative to sign-in sheets in class. Our GDPR issues are precluding us from having names and ID numbers on the same page.

On Wednesday, 12 September 2018, Dan Marsden notifications@github.com wrote:

found some more time to tidy it up - all updated code in that qrcodes branch - just doing some more testing and will merge into the master branch! - thanks for your work!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/danmarsden/moodle-mod_attendance/issues/323#issuecomment-420583042, or mute the thread https://github.com/notifications/unsubscribe-auth/AA0DjA_bMEkhPjbARJh-IsXybCZd-7mqks5uaNeBgaJpZM4WH35z .

-- Eoin Campbell

danmarsden commented 6 years ago

I don't think anyone has noticed before... but the tcpdf lib in core also includes a qrcode class - it's a bit old but I might see if that works instead of relying on the external libs.

danmarsden commented 6 years ago

I've just converted this to use the core tcpdf lib to generate the qr codes and pushed into the master branch - I accidentally found the qrcode capbilities in tcpdf and it looks like it will be fine for the existing use. In future if we want to customise qtcode support further we may need to look at using another lib, but for now the core lib should be fine!