Over the past few months it's been difficult for us to find the motivation to pick up a book and learn something new. Attending Zoom calls from our beds and staring in silence at a professor talking to a wall is far from the engaging learning experience that we and all students are entitled to. So, we decided to do something about it with Quizzo!
What it does
You finished studying for your big exam but you're still not sure if you're ready. You try to find some questions on Quizlet, but most of the time you can't find something relevant to your chapter, and even if you do, you find it hard to stop yourself from looking at the answers. This is where Quizzo comes in.
Quizzo is an augmented reality education tool to gamify the learning process. Using an AR/VR headset such as a Cardboard, Quizzo utilizes OCR to recognize the subject that the student is studying. Based on the subject, Quizzo delivers tailor-made questions that appear right in front of the user in the form of a Jeopardy style game. The user can use voice commands such as "Quizzo quiz me" to start a quiz or "Quizzo give me 100" to tell Quizzo you want to answer the 100 point question. Quizzo then listens for your answer and tells if you if your answer is correct. At the end of the game, you are given a total score based on the questions that you answered correctly.
How we built it
There are a variety of components and services that work together to make Quizzo work. These services include Datastax Astra, Google Cloud Platform, Azure's Cognitive Services, and A-Frame.
Google Cloud Platform was used for a significant portion of this project. We hosted our frontend using GCP's Firebase hosting, which allow for our application to be publicly available. In addition, we used GCP's Cloud Functions to host the backend of Quizzo which allowed us to make use of GCP's serverless architecture to easily and efficiently process our frontend requests.
Azure's Cognitive Services were necessary for the voice command aspect of Quizzo. Using Azure's speech-to-text capabilities, we were able to process incoming commands that the user may be issuing to Quizzo.
Datastax Astra played a large role in our project as it acted as the question bank for Quizzo. Given the large variety of possible subjects that could be tested, Astra was the perfect tool to allow us to accommodate a more inclusive and varying experience for Quizzo users. In addition, our implementation of Astra means that the possibilities for expanding the scope of our questions in the future are almost infinite.
A-Frame and ar.js made our frontend experience possible. We used A-Frame to display questions and results in front of the user to create an augmented reality experience of a user answering questions on a board.
Challenges we ran into
Many challenges arose throughout the creation of our project that we were able to ultimately overcome. We had issues with continuously streaming audio from our backend to the frontend, however we were ultimately able to overcome them with the help of Azure's speech-to-text services. Furthermore, we encountered many bugs in displaying questions in front of the user, but we were able to surmount this challenge after extensive debugging.
Accomplishments that we're proud of
Overall, we are all very proud of our ability as a team to create a working product from scratch. Furthermore, we are proud of our ability to overcome our personal hurdles and go outside of our comfort zone to explore new technologies such as Astra databases and augmented reality.
What we learned
Being our first time using Datastax Astra, we obtained a better idea of how databases can be effective in creating a scalable and largely available application. We also gained a greater familiarity with the services provided by Google Cloud. In addition to the software we learned, we also learned how to better work as a team to maximize each of our strengths and make a quality product.
What's next for Quizzo
There is still much room for Quizzo to expand. With our implementation of Datastax Astra, we've opened up our options of adding more questions and subjects to include students of all backgrounds. Also, we would like to integrate more intelligent natural language processing to provide more relevant and content-tailored questions. Moreover, there is also opportunities for making Quizzo a competitive learning experience by making it an online game were students can compete with friends. Lastly, we would like to clean up our application overall by perhaps making it into a phone application, creating a more comprehensive user interface, and perhaps implementing natural language processing to make the experience seamless.