This was a large, three term long, group project. We were given complete freedom to decide on a topic. After a lot of deliberation, we all settled on a project that we titled “Attendance and Room Utilisation”. This project would improve the current method that the University uses to calculate both student attendance and classroom/lecture theatre seat utilisation.
We noticed that our University hired a small team of people to carry iPads, with a spreadsheet on, around campus popping their head into each room and quickly counting how many people are in there. This would happen once an hour, every hour, for every room on campus. This is extremely laborious and ultimately error prone.
To record student attendance (which really is only counted to keep an eye on first years) tutors have to pass a class list round where students sign there name. The issue with this is that if someone has slept in or can’t be bothered to get dressed, they text a mate to sign in for them. It is too easy to cheat the ‘system’.
Our system would counter these issues by requiring students to swipe into a room with their University allocated RFID chipped student cards. The card reader would process this swipe in adding records to a central database that counts the times a student enters a timetabled or non-timetabled session. Staff are able to log into a web interface to retrieve reports about overall attendance or specific reports about rooms, modules, or students.
To realise this system, we had to develop the database data model that would support the complex time-based data of students ‘checking in’ to both their timetabled sessions and also personal study time. This involved normalising the database structure to enable efficient storage as the database would be populated with vast amounts of data. Along with the database, we created a RFID scanner simulator (simulator because we didn’t have the funds to get a RFID reader) which was written in Java and used the JDBC library to connect to our MySQL database. I hosted the code for this on GitHub under the codename Ricky. This scanner was multithreaded so that it could continue to scan cards even if the system was running slower than usual.
The final part of our system was the web front end. This was written in PHP and hosted on Amazons cloud services (though it would be hosted internally on release). It provided access only to staff through a log in screen. Once authenticated, staff could view reports of the data but could also download a comma separated value file of the entire database for further processing in Excel or other mathematical packages.
For this project, we were graded 67%. Of course we’re very pleased with this mark, but we feel that we could have got a higher mark by focusing a little more on the documentation at the later stage of the project.
If you have any questions or would like more details about this project then please ask me. This was a large project and I have too much content to attach here, this is just an overview.