From Pixels to Presence: QR Codes for Student Check-Ins

We are going to create a program to take attendance using id cards that the hypothetical students would have. These id cards have a QR codes on them which the program will scan and mark them as present.
Hashim Adnan Mahad Hasan
Grade 8

Presentation

No video provided

Problem

We are trying to solve the problem of the inefficiency and time that it takes to take attendance.  Attendance can take a long time, especially if the class is loud and is not listening to the teacher. There is also the possibillity of error in taking attendance as students are coming in, a student could be here and they went to the bathroom right before class and the teacher marks them as absent. We are trying to solve all of these problems and come up with a more efficient solution.

Method

     To solve our problem we had two ideas; create a facial recognition program that checks in the student after their face is scanned, or create a program that scans id cards that have a QR code on them to check in the student. We went with the second option for two reasons. First of all our computer wouldn't work with the facial recognition program. The second reason is that we felt at the stage the world is in, this wouldn't be realistic because implementing a facial recognition software to take attendance in schools is a little unrealistic. The QR code option is realistic because we already have id cards that we use to check out books in our school library. Scanning id cards are realistic and can be implemented into schools. The question now is; is using a program to take attendance more efficient and will using the program make our lives easier?

     Our hypothesis is; if we use  a program to take attendance, then it will be easier and more efficient because using a program will eliminate the need for teachers to take the attendance and it will be a faster process.

     To test our hypothesis and solve our problem there are a few steps. First we have to make the program, second we make QR codes, and lastly we will do a demo to test the program and see how simple and efficient it is. The program is really simple to use! You will have your id card, you will walk up to the camera that is connected to the computer and show the QR code on your id card to the camera. When it detects the QR code it will read it and mark you as present. You will know it has successfully scanned it when you hear a beep and the words "Detected" will pop up on the screen. This code will keep running until you press q on the keyboard. It will then tell you which students are absent and which students are present along with the time, the time is useful in telling if a student is late or on time. Here is a picture of the program we made with an explanation:

     

     This program has 5 main parts(simple terms, its a little more complicated than said below):

            Step 1: Import packages; The top four lines we are importing external packages. These packges help us read the QR codes, access the camera, make the beep sound, and get the current time.

            Step 2: Create the lists; Lists can be explained simply as containers. The line "present = [ ] ", means that we are creating an empty list. Whenever a QR code is scanned, the name in the QR code is added into the present list or container. We can then end the program and see all the names that were scanned. The line underneath  is our absent list. Why do we have the absent list full? These made up names in the absent list are all the names of students in that class. Whenever a QR code is scanned the name is added into the present list and removed from the absent list. This will help us also know which students are absent.

             Step 3: Read each frame; in the line " detectedBarcode = decode (frame)", we are decoding each frame and searching for a QR code. This line will help us read each frame.

             Step 4: Display texts and edit lists; we are going to display the text "Waiting....", when a QR code isn't detected. And if a QR code is detected we will display the text "Detected", and a beep sound will be made. We will then add the name in the QR code in the present list(container) with the time the QR code was scanned, and remove it from the absent list(container).

             Step 5: Final attendance results; The last four lines we are saying that if the key "q", is pressed then print in the output all the students that are present and all the students that are absent along with the time. This concludes the code

     How is a QR code made? How does a QR code reader read the code and extract information from it? When you type in a QR code generator, the QR code generator converts your text, link, and etc into bits. 0 and 1. The QR code uses the two colors in it. black and white. The white represents 0 while the black represents 1. In this way the inofrmation that needs to be encoded in the QR code can be encoded. A QR code reader uses the three large boxes in the top right and left, aswell as the bottom left to know how to read the qr code. This way the QR code reader will decode the 0 and 1, or the black and white squares and extract information from it.

     Now all we have left is our demo. To perform our demo we will lay our id cards which we printed out in a pile. We will grab an id card from the top and walk through as if we are walking into class. We will scan the id card we have, put it to the side and walk around and grab another. We repeat this process until we have scanned a reasonable amount. We then will end the code and read the output to check who is absent and who is present.

                    

                        

Analysis

     We did our demo and simulated students entering their class. We learned a few things from our demo. First scanning your id card is much better than screaming "Here," and trying to listen for your name over everyone talking. You also don't need to worry about being marked absent, you scan and you are good. This also helps teachers because they won't need to worry about marking a student absent accidentally. Overall using this program can help both sides. But always, in almost every solution. There are some ways we can improve our solution, and there are some shortcoming and problems.

     What can we do to improve our project and our solution? One improvement we could make if this was implemented into a real school is that the attendance could be sent directly to the main office. Of course we dont have an office, but that would be helpful because that would remove the hassle of sending the attendance to the office. This can improve our solution greatly.

     What are some problems with our project and solution? One problem is that this system is simple to exploit and mistakes can be made. Students could forget to scan their id cards, this would make the problem bigger than before using the program. You would need to track the student down and make sure this student is here. There is also the possibility of students losing their id cards. This would be a big problem because it would take time printing another card and what would the student do now to be marked as present. As always technology can have problems, there could always be a glitch in the code and this would cause big problems. But if in the future this program was implemented, we could work toward solving these problems.

Conclusion

     It's time for the conclusion, I'll tell you what we learned and realized during the duration of this project. While doing the demo we realized that using the program was simple and effective. Just a scan and DONE! In real schools you send the attendance to the main office, we don't have a main office because we are not a school but if this was applied to a real school we could probably send it directly to the main office. This not only means this is more efficient, but in a way we dont even have to take attendance. That's great,  right? Well so we thought. While discussing how our program makes it easier to take attendance, we learned something. In an age of innovation and every job being handed over to technology and AI. Are we trying to solve a problem that isn’t a problem? So of course it was cool that this works, but it's important to know that we cant solve little miniscule problems with big solutions. In a way we are over engineering. I always thought it was cool how robots or technology could solve our problems, but it’s important to acknowledge that all problems don't need to be solved by technology. So in conclusion; YES it’s faster and more efficient to build a program to take attendance in schools. But should that be something we should be doing? NO,humans are capable of taking attendance. 

 

Acknowledgement

     There have been a few peopel who have helped us along the way with finishing our science project. First of all our parents, our parents have helped us with getting the rescources and materials needed with our project. We also acknowledge our science teacher who helped us alot by answering any questions we had.