Course Attendance Registration: Digitalized (CARD)

In this blog describes Timo Halbesma (Physics student) how his idea for the application CARD was born and how he brought it to reality by his student UvA Grassroots project. CARD is a proof of concept but is now already successfully used in teaching practice by several teachers saving them their precious time. A success which will be scaled in near future.   

Timo Halbesma showing the RFID cardreader for StudentID cards attached to a laptop running the CARD website.

Timo Halbesma showing the RFID cardreader for StudentID cards attached to a laptop running the CARD website.

During the first semester of the 2011/2012 academic year I was enrolled for Java Programming. The following semester I enrolled for Big History and the Future of Humanities, an open UvA course with compulsory attendance. One of my observations was that the attendance list for roughly 500 students was a sheet of paper that was passed trough the lecture room which students had to sign with their name and student ID number. I was puzzled why this was happening because such a list would for sure be digitalized later on, a task that is so boring that my brain would implode. At that point in time I made up my mind to write a programme in Java that would automate this task to absolve the course coordinator from this drudgery.

My endeavors were fruitless as my programming skills were far from adequate to successfully complete this challenge. The lecturer would require a GUI (not straightforward in Java and not a part of the course I took) instead of a CLI application, there had to be an easy way to inform students of their attendance progress (how would I achieve this?) and the application would have to be installed on different machines with different operating systems and different versions (probably a complete disaster). The easiest solution was to develop a website because it has a user-friendly interface that everybody is familiar with. Moreover, both students and teachers can access the website from all over the world, from any machine or browser combination imaginable.

A couple of years later I had develloped usefull skills in GNU/Linux, Pyton, a little bit of HTML/php/mysql and I was pointed at the Django framework for the very straight-forward programming language Python. Now, the first thing I read about Django was ‘The Web framework for perfectionists with deadlines’ so I was instantly hooked and determined to study the framework in great depth to achieve my goals. During my Bachelor in Astronomy and Physics I have worked for Joëlle Kessels as a tutor in the Astronomy and Physics bachelor. In addition to coordinating both academic skills and the tutors, Joëlle recently started to coordinate Oriëntatie Natuur- en Sterrenkunde, a course that is passed after a student has attendend at least 25 lectures. This course is the perfect playing ground for my attendance project and my intentions to develop a website for fast and user-friendly attendance registration. Joëlle brought the ICTO grassroots subsidy to my attention and I contacted Natasa Brouwer (ICTO-FNWI coordinatior) for the necessary support and cooperation with my grassroots project and a contact with the Datanose (Gerrit Oomens) was made.

CARD-HomeNext, development commenced. At my home server I configured apache2/mod_wsgi/mysql to accept http requests handled by python/django. My first challenge was to lock down the site using a login system. Django-registration was almost perfect, but after some slight modifications I managed to combine (i.e. copying code from the Open Source project Starfish by ICTO-FNWI) it with IvOAuth, a wrapper around Surfconnext/CAS to enable student/staff login via the UvAnetIDs. The following step was to implement an accessable, friendly user interface. Bootstrap, in my opinion, is like a lego kit that may be used to suit the needs of the programmer on the front end of websites (javascript, css, ajax). After the implementation of my user interface I had to crack some difficult puzzles on the backend concerning the complicated OneToMany and/or ManyToMany relationship between courses, lectures, students, users, teachers and datetimes. After finializing the first version of the website I could foccus on registering/notifying users that are attending courses, checking DataNose if a student is actually enrolled for the course, importing from – and exporting to Excel databases and serverside logging for debug/info purposes.

CARD_TeacherCourseView_annoniemCurrently, CARD is used by Oriëntatie Natuur- en Sterrenkunde. The paper attendance registration has been replaced with CARD alltogether after two trial runs. Starting September 2014 CARD wil be used again for Oriëntatie and is looking for the possibilities for expanding the usage of CARD at the whole University of Amsterdam.

Contribution: Timo Halbesma

Links Starfish
Project description:
Good practice CARD: