Project Info
Inspiration
Having used Quizzlet for most of my tests the hardest task for me is first reading through all my notes and then making every Flashcard myself (hoping I grasp the right idea and my answer on the other side is right). I used to waste lot of my time preparing to prepare for the test than actually studying. With all the new development in AI and with Open Source models catching up with the State-of-the-Art models. Its easier than ever to create study notes
What it does
EasyQuizzes automates the creation of study flashcards from your notes. You upload a PDF, choose a topic, and set the number of flashcards you want. The app then creates knowledge chunks from these PDFs stores them to ChromaDB's vector database. When the user asks for N flashcards it pulls the K(preset value) most relevant chunks and the llama3.2 model uses them to generate your flashcards.
How we built it
We used ChromaDB as our vector database for storing chunk embeddings. FastAPI was utilized for API handling and backend testing. Meta’s LLaMA 3.2-3B-preview powers the app, with deployment made easier through Groq. The backend is written in Python, while the frontend uses VanillaJS, HTML, and CSS
Challenges we ran into
As a non CS grad, I had some programming background with LLMs and RAG , but deploying these projects was really hard the entire first day was spent on resolving issues with colliding packages in JS and Python. We almost entirely gave up on the tech stack.
Accomplishments we're proud of
e're proud the app works as intended, especially under a tight 3-day deadline. The successful implementation of OCR was also a big win.
What we learned
We learned the value of teamwork, leveraging each other's strengths and past experiences. Delegating tasks effectively based on expertise helped us push through challenges.
What's next
Post-competition, we aim to integrate VLLMs like LLaMA 3.2-11B-vision or smaller models like LLAVA or Moondream to add features like converting videos and audios into flashcards. We also plan to incorporate a NoSQL database to store flashcards and eventually develop EasyQuizzes into a full-fledged app. The current implementation uses groq hosted models which lack the finetuning needed for such specific tasks. So, we hope to deploy our own LoRA models for better output or understanding OCR content better.
ByteBuilder Flashcard Generator - Cal Hacks 11.0
ByteBuilder presents a Flashcard Generator, developed for Cal Hacks 11.0. This web application allows users to upload PDF documents and generate AI-powered flashcards, creating an excellent tool for study and revision.
Table of Contents
- Features
- Prerequisites
- Installation
- Running the Application
- Usage
- Working
- Project Structure
- Technologies Used
- Troubleshooting
- Future Improvements
Flashcard Generator
Flashcard Generator is a web application that allows users to upload PDF documents and generate flashcards based on the content. It uses AI to create multiple-choice questions and answers, making it an excellent tool for study and revision.
Features
- PDF upload and processing
- AI-powered flashcard generation
- Multiple-choice question format
- Topic-specific flashcard creation
- Interactive flashcard interface
Prerequisites
- Python 3.8 or higher
- Groq API key (sign up at https://www.groq.com)
Installation
-
Clone the repository:
-
Create a virtual environment (for PiP):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install dependencies using PiP(requirements.txt):
pip install -r requirements.txt -
Install dependencies using Conda (environment.yml):
conda env create -f environment.yml conda activate flashcard-env -
Set up environment variables:
- Open
.envand replaceyour_api_key_herewith your actual Groq API key
Running the Application
-
Start the FastAPI server:
python -m uvicorn backend.app.main:app --reload -
Open a web browser and navigate to
http://Localhost:8000or whichever is provided by CLI
Usage
- Upload a PDF file using the "Upload PDF" button.
- Enter a topic and the number of flashcards you want to generate.
- Click "Generate Flashcards" to create your flashcards.
- Navigate through the flashcards using the "Previous" and "Next" buttons.
- Click on a flashcard to reveal the answer.
Working
Crash course in Python Book Link: https://ehmatthes.github.io/pcc/
Project Structure
This structure represents the main directories and files in the project:
backend/: Contains the backend logic.app/: Contains Python scripts for backend functionality.__init__.py: Initializes the Python package.main.py: The entry point of the backend application.models.py: Defines database or data models.ocr.py: Script for Optical Character Recognition (OCR).VectorDB.py: Vector database management.llm.py: Logic for Large Language Model (LLM) interactions.
frontend/: Contains frontend files.index.html: The main HTML file.styles.css: The CSS file for styling.script.js: The JavaScript file for frontend functionality.
.env.example: Example of environment variables..gitignore: Files and directories to be ignored by Git.requirements.txt: List of dependencies for the backend.README.md: Project documentation.
Technologies Used
- Backend: FastAPI, ChromaDB, Groq API
- Frontend: HTML, CSS, JavaScript
- PDF Processing: PyPDF2
- Environment Management: python-dotenv
Troubleshooting
If you encounter any issues:
- Ensure you're using Python 3.8 or higher
- Verify that all dependencies are correctly installed
- Check that your
.envfile contains the correct Groq API key - Make sure you have an active internet connection for API calls
Future Improvements
- Implement user accounts for saving and managing flashcard sets
- Add support for more file formats beyond PDF
- Enhance the AI model for even more accurate and diverse question generation
- Develop a mobile app version for on-the-go studying
Analysis
View
Metric
- 87
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
- CSSIn code
- FastAPIIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
5 of 5 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
27 KB
Source files
12
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Shreyas-Yadav/EasyQuizzes
14 files · 27 KB · @ 02cd56d
Structure
Interface
8 files · 57%Screens, components and styles rendered to the user.
Application logic
2 files · 14%Domain rules, services and shared utilities.
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
- Python38%
- JavaScript28%
- Markdown15%
- CSS11%
- HTML7%
- YAML1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 8- chromadb
- fastapi
- groq
- pydantic
- PyPDF2
- python-dotenv
- python-multipart
- uvicorn
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 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.