Inspiration
Time's running out. The test is catching up with you. So many notes, but not enough time to study. We've all been there. We decided to solve the problem that students across the world face daily. We took initiative and built the program of every test taker's dream. With the power of GPT-3, we knew we could construct an application with the technology at our hands.
What it does
Our program allows students to upload notes in any format, whether they be digital, written, or drawn. With a simple click of a picture or a quick document scan, the notes will be transformed into sets of questions and answers. Students can utilize and access these quizzes in order to study their notes through an interactive and stimulating manner. The point of this application is to allow students to learn and study their notes through a personalized manner. These questions and answers are able to be imported into digital flashcard softwares, such as Quizlet. Students can always come back to these quizzes in order to refresh the content, as the information will be saved to their personal account.
How we built it
Front End We built the front end for this website using HTML, Javascript, & TailwindCSS. We made extensive use of the Firebase Web SDK to allow for the authentication and storing of user data and images uploaded by the user.
Back End Our backend was built in Node.js. We used Express.js for the web server and implemented the Firebase Admin SDK to authenticate requests. We're using OpenAI's GPT-3 model to create answers and questions for a given text. Backend processing runs on an AWS EC2 instance in a secure VPC with a REST API to allow for communication. Our EC2 instances are configured on an ACG (Auto Scaling Group) and are grouped within an ALB (Application Load Balancer) to allow for scalability so the system will not lag or get bogged down during times of high usage yet stay low cost during times of low usage. The EC2 will process images submitted by users using tesseract in order to translate images into trimmed prompts that we can feed into openAI. Individual prompts given by the user will also receive the same treatment to stay price and time efficient. After our backend has processed everything, we send back a response to the user that can be copied and pasted into Quizlet's import function.
Challenges we ran into
Originally, we wanted to use the Tensorflow text summarization model. However, after some testing - it wasn't really giving us proper responses. We found the responses to be super vague and not precise compared to the openAI responses which were much easier to read and use. In the early stages of the project, we found some trouble working collaboratively using git since not everyone in our team had used git in such an active environment, so we made the switch to replit. Towards the end of the project replit started causing issues and hanging when trying to import the Firebase Auth API so we had to make the switch back to git and learn how to work as effectively as we did before on the fly.
Accomplishments that we're proud of
The main thing we're proud of is getting Tesseract OCR to properly read images and using OpenAI to process this data and submit a legible actually useful set of questions and answers to the user.
What we learned
Even though we ultimately ended up using OpenAI, we learned quite a bit about tensorflow since none of us had actually used it before. We learned how to properly differentiate between the sequential and the layers model which seemed to be the two pillars to train tensors. A lot of us individually learned skills off of each other that would normally take weeks to learn. Some of these skills included HTML, tailwindcss, git, photoshop, and many more!
What's next for QuickQuiz
Since we're storing all this data anyway, what's stopping us from using this data to train a custom neural network.
Well time is stopping us, but that is ultimately what we'd want to work on next.
Built With
- amazon-ec2
- amazon-web-services
- html5
- javascript
- node.js
- openai
- replit
- tailwindcss

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