Overview
StudyBuddy is a flashcard app built for a university software engineering course. It implements spaced repetition (a simplified SM-2 algorithm) so review sessions focus on the cards a student is about to forget.
Problem
Existing spaced-repetition apps assume months of steady daily use. Students cramming for an exam in the next 5–7 days needed a scheduler that compresses review intervals instead of spreading them across weeks.
Approach
- Implemented a modified SM-2 algorithm with a configurable "exam mode" that caps intervals at the number of days left until the exam.
- Built as a PWA so it works offline during library sessions with poor wifi.
- Deck import/export via CSV so cards could be shared between teammates.
function nextInterval(easeFactor: number, daysLeft: number): number {
const ideal = Math.round(easeFactor * 1.3);
return Math.min(ideal, Math.max(1, daysLeft));
}
Tech stack
React frontend with IndexedDB for offline card storage, a small Node/Express API for account sync, SQLite on the backend since the whole project ran on a single shared VM for the semester.
Outcome
Submitted as the final project for the course, used by both team members (and a handful of classmates) to study for finals. Grading feedback specifically called out the exam-mode scheduler as a thoughtful deviation from textbook SM-2.
Note: this is a mock case study written for portfolio demonstration purposes.