Inspiration
Students' difficulties with intro-level programming classes was our primary inspiration. In such classes, students are usually new to college life and do not have a lot of resources to prepare for college-level classes where Professors have different expectations from students. We bridge that gap with "Prep Me a Quiz".
What it does
We built a fullstack website that creates quizzes based on Google Gemini API which is prompted based on text generated from student's class slides. As a starter, we have used CS1 class slides from Prof. Mikhail Nesterenko's CS1 class. For each PowerPoint presentation, we build a quiz for students to take, to verify that they learnt all the topics from those slides.
How we built it
- For communicating with the API we used Python as the backend and Flask to route the requests from our React frontend app.
- As mentioned above, the questions are generated based on all the text, titles and topics covered in classes like CS1.
Challenges we ran into
- Connecting Python backend with React frontend using Flask was the most challenging since none of us in the group had worked any kind of AI web application before not to mention Flask framework too.
- Besides that, other challenges that seemed fatal when we first encountered them were:
- The Gemini API was super unpredictable in providing us responses in terms of Questions and Answers such that sometimes it gave answers with explanations or sometimes by only giving an answer key. This was detrimental for the students using our Website since answers should only be referred to after an honest attempt at the question.
- The Gemini API returned Markdown as a response object and not HTML for some reason which we solved by importing the marked JS library to convert Markdown to HTML.
- The Gemini API was super unpredictable in providing us responses in terms of Questions and Answers such that sometimes it gave answers with explanations or sometimes by only giving an answer key. This was detrimental for the students using our Website since answers should only be referred to after an honest attempt at the question.
Accomplishments that we're proud of
- Given that this was our first attempt at any hackathon, we are proud that we came together to create a functional product and have something to show for our effort.
- Yug and Ean attempted to learn Flask from scratch at 4 in the morning and were able to pull a decent Flask code to get requests from React code and give back questions and answers from Python Gemini implementation.
- Lennice and Khushi successfully created a functional frontend with React using Vite.
What we learned
- We learnt the importance of working in a group and the kind of manoeuvres we as a group had to make to reach our collective goal.
- This came in the form of tough choices for our UI, and time spent on learning/implementing each unfamiliar framework.
- We fought the challenges of running GitHub for an extensive project of 4 people.
What's next for Prep me a Quiz
- We would love to implement quizzes with better UI and use a more reliable LLM(large language model) so that we can rest assured that the students using our application learn the best they can from their class material.
Log in or sign up for Devpost to join the conversation.