What it does

Have you ever finished a long textbook reading and wondered if there was a smart way to instantly test your knowledge? Quizzical solves that problem by creating various multiple-choice and free response questions using powerful NLP processing. With simply the click of a picture or screenshot, users can instantly solve practice questions extracted from the text.

How we built it

We used the Google Cloud Vision API to convert pictures into text and Google Cloud NLP API to create the questions from the text. We then used Flask to create a server and Firebase Storage to read and write the data. The server is being hosted on Google Cloud App Engine.

Challenges we ran into

  • Asynchronous threading
  • Getting incorrect answer choices by scraping Google Search
  • Getting incorrect answer choices for numerical-based questions
  • NLP algorithm for synthesizing questions (Google Cloud NLP)
  • Isolating titles from the OCR (Google Cloud Vision)
  • Handling unexpected “merging” of images on the Flask server running on Google App Engine
  • Writing data to and from a Firebase storage

Accomplishments that we're proud of

  • Learning NLP techniques with Python such as summarization, sentence synthesis
  • Successfully writing data to and from a backend Flask server running on Google App Engine
  • Successfully using Swift to integrate the entire app
  • Learning to use Sketch to design the UI
  • Learning to use CocoaPods to help with adding libraries

What we learned

  • Numerous NLP techniques
  • Python
  • Swift
  • Flask servers
  • Firebase
  • CocoaPods

What's next for Quizzical

We can broaden the scope of Quizzical by using machine learning to improve the syntax of the questions being asked as well as custom tailor the questions to each individual student that targets their weaknesses in the subject. We can then create a virtual chatbot that can make the user experience more interactive by allowing the student to directly respond to the questions that the virtual tutor is asking.

Share this project: