Inspiration
As students, we have all gone through the eternally frustrating moment where, because the professor isn't paying attention for whatever reason, you are left raising your hand to the point that it hurts, hoping that your question will get answered, but it never does. Because of this, we wanted to create an app that could alleviate this problem, and help students get their questions answered.
What it does
HandRaising begins by taking a live video feed (for example, a webcam with a good vantage point of the room) and tracks the positions of students' arms from the shoulder down. Then, when a student raises their hands (both their elbow and wrist are above the shoulder) it begins a timer. Then, after a user defined interval (in seconds) passes, it alerts the device which the app is running on that a hand is raised.
How we built it
For the actual video capture and gesture detection of the raised hand, we utilized python in combination with OpenCV and YOLOv8. For the design of the app, we utilized HTML, CSS, and JS, and then used Flask to bring everything together and make it into an actual web application.
Challenges we ran into
Unfortunately, we struggled a lot with the frontend layout of the site, as we couldn't get it to cooperate with how we wanted it to look, though we definitely tried. We also attempted to implement a way to switch the camera feed if there was more than 1 camera connected, as well as implement a light/dark mode toggle, but we weren't able to get that working either.
Accomplishments that we're proud of
Pretty much everything we used to make this project was either mostly or completely unknown to us, so the fact we were able to make anything functional at all is an accomplishment we are very proud of.
What we learned
The importance of actually planning out what will be used in projects like these. For example, flask was only utilized because we realized it was the only way we could connect our front and back ends, and YOLOv8 was used because our originally planned gesture detection library, MediaPipe, was outdated. We also realized how impactful and beneficial it is to ask for help, as we only ended up using React for our frontend due to asking a KnightHacks staff member for advice.
What's next for HandRaising
In the future, we hope to develop the project to the point that it meets, and even exceeds, our original plans for the project in this hackathon.

Log in or sign up for Devpost to join the conversation.