Inspiration
We wanted to build something practical that students actually use. Study planning is universal—everyone struggles with how to break down a topic into manageable daily tasks and remember what they learned. We decided to focus on the scheduling part, using spaced repetition principles to create study schedules that stick.
What it does
The Study Planner takes a topic (like "Biology" or "Quantum Mechanics") and generates a multi-day study schedule. It automatically creates review sessions at increasing intervals, based on the spacing effect from cognitive psychology. Users can input their topics, see the generated schedule, and export it as Markdown for use in their favorite tools.
How we built it
We started with a React + Vite frontend and a FastAPI backend. The original plan included optional AI integration via OpenAI for smarter prompt generation, but we quickly realized the MVP didn't need it. We stripped down the backend and moved all the scheduling logic to the browser using plain JavaScript, making the app entirely self-contained. This eliminated deployment complexity and server dependencies.
Tech Stack:
- React 18.2 + Vite 5.1 (frontend)
- Plain JavaScript scheduling logic (no external libraries)
- Local Markdown export via browser Blob API
Challenges we ran into
- Dependency conflicts – Vite 5 required plugin-react v5, not v4. We had to carefully manage the version matrix.
- CORS issues – When we had a backend, preflight requests were failing. We eventually solved this by eliminating the backend entirely.
- Scope creep – We almost added user authentication and persistent storage, but kept focus on the core scheduling feature.
Accomplishments that we're proud of
- Zero dependencies – The scheduling algorithm is pure JavaScript, no npm packages needed.
- Browser-only – No server, no deployment headache. Users can run it locally or host it anywhere static files are supported.
- Clean, simple code – Removed all AI-generated comments and templates to keep the codebase readable and maintainable.
What we learned
- Sometimes less is more. Removing the backend made the project stronger, not weaker.
- Browser APIs are powerful—Blob and download links handle export without any backend.
- Spaced repetition math is simple but effective. A basic formula (review_day = 2^n) is enough for a working MVP.
What's next for hackaton
- Add PDF export and prettier formatting options.
- Allow users to customize review intervals (e.g., more aggressive spacing for exams).
- Build a simple stats dashboard showing daily study load and review distribution.
- Optional: Persist schedules in localStorage or IndexedDB for returning users.
Log in or sign up for Devpost to join the conversation.