User:Bfoley/attendance

Write problem/project Goal
Automate the attendance process.

My First Task
Work with the design of the stand. Make it tons more functional. Use trigonometry.

Summary of actual work over first weekend
Planned a Tried to understand Java

Week1 Narrative
As the stand was too large and bulky to bring home, I took measurements with which to use while I was at home over the weekend. The existing stand was a simple affair, two vertical pieces with a single crosspiece about 130 centimeters up and a platform at the very top of its 160 centimeters. The platform is a piece of particle board that measures about 44 by 28 centimeters. It did not stand up under its own power. The other part of the hardware would be some sort of camera. My entire face was captured by the webcameras available in the engineering lab when there was a distance of about 50 centimeters between the camera and my head. This may be more or less depending on the person to be photographed. Based on measurements taken from people within the lab, I estimated that the center of the average student's face would be about 155.7 centimeters high. The existing stand for the camera was less than ideal. One of the side beams was warped. Any support attached to it would require additional work to make it square. Two other boards were found in the lab and were cut down to about 190 centimeters. User error made it so that the cut was not square, so additional measurements were made at 189.5 centimeters. At some point during all the measuring and cutting and general carpentry, a thought occurred to me. How advanced was the software for facial recognition? Surely it would not be anywhere near that used by the characters of detective shows, which mapped a person's face down to the pore. Should any student come in with a radical appearance change, such as a drastic haircut, new piercing, or major bruising to their face, would they be recognized as themselves? The Barcode Project was using QR codes to help a student find their way on campus. A QR code, pasted on or within the notebook itself, could be used instead. Through the team pages of previous groups, I found the source code for a QR reader program, which was written in Java. Thus, I figured I should try working with Java to utilize this code. As I had limited experience programming, I felt that I needed to find an interface that was fairly user friendly. This kept me running around the web like one of the Doctor's companions. There would also need to be cables from the camera to the computer on which this software to utilize it would be kept. Super scientific measurements were taken and I concluded there were about 13 meters between the door and the computer which connected to the projector, which would probably be the ideal computer to run the program as this is generally used as the teacher's computer.

My Second Task
Try to integrate QR codes into the process in a way that makes it easy and simple.

Summary of actual work over second weekend
Tried out various existing programs for reading QR codes

Week2 Narrative
Over the weekend, I searched for various programs that would read QR codes through a webcam. Many of these would spit out a result that would disappear once the program was closed. To get more features, some required a purchase. Z-Bar Cam was the best fit, with open-source software and a community of programmers sharing their advances. The full download of Z-Bar Cam included all of the files needed to build a program. I began my foray into programming with C++.

My Third task
Try to manipulate the program to get a savable end file of the scans.

Summary of actual work over third weekend
Not much.

Week3 Narrative
Over the weekend, I tried to find free programs with a programming interface for C++. I was unable to find everything needed to allow me to use Netbeans to work from home. This has kept me from being able to program from home. I made it to class on Thursday and tried using Microsoft's Visual Studio. The user guide left me confused and irritable and unable to understand how to use the program for my needs. Many of the error pages were unclear as to what I needed to change to make things work.

My Fourth task
Make the necessary changes to get the program to write to a notepad.

Summary of actual work over fourth weekend
Not much.

Week4 Narrative
On Tuesday, I tried using NetBeans to code. The interface and help manuals were better suited to my mind. This program is also completely free. Though I made some advances, I was not able to make a complete program. I did figure out how to use header files: put them in the same folder as the .cpp file, and then the include function can draw upon these. I also took another look on Google. By searching "qr attendance" I did find some programs that could be implemented or had been implemented. Eastern Michigan University is in the process of using QR codes to gauge attendance to different programs offered to students. They use codeReadr, which has a monthly fee for usage. Across the pond, Yu Suzuki created a QR attendance program about two years ago, but her site does not have any further information on the coding. There are also some other programs that could suit our needs, but all either have fees or are only available for other platforms. I took a break to work with the new equipment that was ordered. The barcode scanner is a model that works right out of the box, with additional settings available as needed. The Fingerprint Reader is designed to work with Windows XP or Vista and needs additional downloads to work with Windows 7. I took both home to try to get them to work. The geeks over at the Teknogods forum had found a solution for this model of Fingerprint Reader. Instructions and download links can be found here. My computer is already equipped with a version of Digital Persona and has its own fingerprint scanner, so I was unable to try installing this Fingerprint Reader. A free program that would fit our needs is available from Scott Severance. I was unable to get it to run on my computer, as I am missing some of the required components. I hope to try to work on it on Monday in the Engineering lab.

Complete Team Page
Team Page