Wisebud is a smart AI-powered study assistant that helps students learn more efficiently by generating summaries, flashcards, quizzes, and answering questions based on uploaded notes. Designed for independent learners and optimized with spaced repetition, Wisebud streamlines your study workflow across multiple courses and users.
GitHub repo: https://github.com/ethanchang235/spaced-rep-study-assistant.git
- π Upload Files: Supports
.txt,.pdf,.docx, and images. - π§ Summarize Notes: Auto-generate titled summaries using GPT.
- π Generate Flashcards: JSON-based flashcards with spaced repetition scheduling (SMβ2).
- β Ask Questions: Ask natural language questions using all uploaded + generated content.
- π Generate Quizzes: Auto-create 10 multiple-choice questions per session.
- β± Spaced Repetition: Flashcards track review intervals, difficulty, and schedule using SMβ2.
- β Card Feedback: Mark answers as correct or incorrect and adapt future review timing.
- π Next Card Logic: Only one card shown at a time; next due card is surfaced intelligently.
- π€ User Login/Registration: Secure authentication with hashed passwords.
- π Per-Course Organization: All data is separated by course name and user.
- π Local JSON Database: All data is saved locally in
study_data.json.
- π Model Selector: Choose between
gpt-4o,gpt-4.1, orgpt-3.5-turbo. - βοΈ Custom Prompts: Add your own instructions for summarizing, quizzes, and cards.
- β To-Do List: Add and remove personal todos to track tasks.
- ποΈ File Management: Delete specific uploaded files per course.
| Layer | Tech |
|---|---|
| Backend | Python, Flask, Flask-CORS, OpenAI API, PyMuPDF, Pillow |
| Frontend | HTML, CSS, JavaScript (vanilla) |
| Storage | Local JSON (study_data.json) |
Follow these steps to clone, set up, and run Wisebud locally.
git clone https://github.com/ethanchang235/spaced-rep-study-assistant.git
cd spaced-rep-study-assistant
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
echo OPENAI_API_KEY="sk-your-api-key" > .env
python app.py