Project Info
Inspiration
We use note-taking and study apps like Notion and Quizlet a lot, so we had an idea and asked: Wouldn't it be nice if we could make practice problems based off of our notes? And so that's how QuizGenie was born. We were inspired by how Quizlet made learning super easy for many students, and wanted to expand the future of online study resources by incorporating AI into a quiz creator.
What it does
QuizGenie is an AI-powered platform that takes in user's notes or prompts and generates customizable quizzes that allow you to practice and master concepts. The application provides dynamic grading and real-time feedback as you take the quiz, so you are always learning on the way. It also allows you to customize the length of the quiz, so whether you are free at home or on the go, you will always be able to generate a quiz that meets your time constraints.
How we built it
We used React + Vite for the frontend, and Flask with Python for the backend. We also used Gemini's API to process text and return multiple-choice questions.
Challenges we ran into
This was collectively our first time doing a hackathon, so we had to learn a lot of stuff on the fly such as learning how to parse LLM responses into JSON and creating a frontend design that communicates with the backend. We also spent a significant amount of time familiarizing ourselves with the React + Vite framework, and learned how to create dynamic UIs through a lot of trial and error.
Accomplishments we're proud of
We're proud of making an app that can leverage the Gemini API, as it was our first time working with anything AI-related. We're also proud to have persevered through an obstacle that we thought we couldn't solve, which was parsing the JSON data from the API, and rendering it onto the frontend. Additionally, we were glad we could fully use the power of prompt engineering to make Gemini's responses more varied, useful, and relevant.
What we learned
We learned how to work with backend APIs in Python, and how to engineer the best prompt for Gemini to return responses in the format of a quiz. We also learned how create a frontend design using the React + Vite framework and connect it with the backend by performing RESTful API calls.
What's next
There were a lot of features that we wanted to include but couldn't because of time restraints. These include but aren't limited to: ** Storing previous quizzes by implementing a database, such as MongoDB ** Implementing a final grading system and allowing users to track their progress over time, possibly using additional frameworks to allow data visualization. ** Allowing for more problem types: multiple-answer checkboxes, free-response, matching, etc. ** Implementing an option for AI voice feedback and live Text-To-Speech ** Implementing an additional chatbox window, allowing users to ask for help and learn while doing the quiz.
Analysis
View
Metric
- 25
- 10
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- CSSIn code
- FlaskIn code
- Google GeminiIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
9 of 9 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
25 MB
Source files
2,639
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
brendan-ly/calhacks-quiz-genie
4,000 files · 120.0 MB · @ 83a5b29
Structure
Interface
3 files · 0%Screens, components and styles rendered to the user.
API & routing
73 files · 2%Request entry points: routes, handlers and controllers.
Application logic
3,776 files · 94%Domain rules, services and shared utilities.
Data & schema
32 files · 1%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python100%
- C0%
- Markdown0%
- JavaScript0%
- Shell0%
- HTML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 22- @google/generative-ai
- antd
- axios
- dotenv
- react
- react-dom
- react-router-dom
- tailwind
- +14 more
backend/requirements.txt
pypi · 2- flask
- flask-cors
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This repository has more files than are indexed here, so the diagram and browser show a partial tree. Open it on GitHub for the complete structure.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.