Inspiration

Every university student knows the dread of exam season. You carefully build a color-coded timetable across three or four overlapping exams—only for life to get in the way. You get sick, have an emergency, or simply burn out on a Tuesday.

The moment you miss a single day, traditional study schedules collapse. Students are hit with immediate guilt, spend hours anxiously re-shuffling spreadsheets, or abandon their plan entirely.

We asked ourselves: Why do study planners punish students for being human?

We wanted to build an intelligent, anxiety-reducing study companion that doesn't scold you when life happens. A tool that accepts setbacks with calmness, recalculates without guilt, and lets students explore "What would it take?" before stress takes over. That was the birth of Rebound.


What it does

Rebound is an adaptive, zero-dependency study planner engineered for university students managing overlapping exams. It replaces rigid calendars with a dynamic, resilient study schedule:

  1. Intelligent Workload Balancing:
    Rebound scales study time by curriculum size and perceived difficulty ($1$ to $5$ scale), prioritizing urgent deadlines. Each subject's daily urgency score is computed as: $$U_s = \frac{\text{Remaining Core Hours}}{(\text{Days Until Exam})^{1.5}} \times \left(\frac{\text{Difficulty}}{3}\right)$$ Study blocks are distributed into structured $0.5\text{h}$ to $2.5\text{h}$ sessions.

  2. Protected Stamina Rules:

    • Exam Day: Strictly $0$ hours of study scheduled for that subject.
    • Day Before Exam: Capped at $1.0$ hour of Light Revision (formula review and summary sheets), actively preventing pre-exam exhaustion.
  3. The "I Missed Today" Rebound Engine:
    If study hours are missed, one tap recalculates the schedule. A non-destructive preview modal shows only the changed days, displaying before-and-after hours with warm amber indicators for added time. All completed work remains locked and safe, and a floating Undo action allows instant rollback.

  4. Reality Check Shortfall Detection:
    When the required workload exceeds available capacity over the remaining study days: $$\Delta = \sum \text{Workload} - (\text{Available Study Days} \times \text{Daily Hours})$$ Rebound presents a supportive notification explaining the exact deficit $\Delta$, prioritizing upcoming exams and trimming lower-difficulty subjects to high-yield summaries.

  5. Reality Check Forecast (What-If Simulator):
    A dedicated Forecast tab lets students test study targets from $1.0\text{h}$ to $10.0\text{h}/\text{day}$ with a live slider. As the slider moves, subject coverage bars and non-amber status badges ("On track", "Tight", "Behind") update at 60 FPS without ever touching saved data. It instantly computes the minimum daily hours needed to cover $100\%$ of the curriculum: $$\text{Coverage}_s = \min\left(100\%, \frac{\text{Scheduled Hours}_s}{\text{Needed Hours}_s} \times 100\%\right)$$

  6. Native Calendar Export (.ics):
    Students can export their personalized schedule with one click as an RFC 5545 compliant rebound-plan.ics file, importing seamlessly into Google Calendar, Apple Calendar, and Outlook without timezone drift.


How we built it

We built Rebound from the ground up using a plan-first engineering methodology, writing complete product requirements, mathematical specs, and worked examples before writing production code.

  • Frontend & Design System: Crafted with clean semantic HTML5 and vanilla CSS custom properties. Designed mobile-first with minimum $44\text{px}$ touch targets, smooth micro-interactions, and accessible, distinct color hierarchies (green reserved for done, amber reserved exclusively for changed time).
  • Pure Algorithmic Engine (scheduler.js): Engineered as pure, side-effect-free JavaScript functions. The core planner, diff generator, forecast simulator, and minimum-hours scanner operate independently of the DOM.
  • Client-Side State & Storage (storage.js): Lightweight localStorage persistence layer ensuring instant sub-millisecond load times, zero login barriers, and total user privacy.
  • iCalendar Engine: Direct browser generation of RFC 5545 iCalendar data using Blob and standard CRLF line endings (\r\n), eliminating external APIs or cloud dependencies.

Challenges we ran into

  • Mathematical Rounding & Deadline Deadlocks: Distributing hours in clean $0.5\text{h}$ slices while guaranteeing that the day before an exam has exactly $1.0\text{h}$ of light revision and $0\text{h}$ on exam day required building a multi-pass allocation loop to prevent starving closer exams.
  • Calendar Timezone Drifts: Standard UTC timestamps often cause all-day events to shift to the previous day depending on the user's local timezone. We solved this by using strict calendar date representations (DTSTART;VALUE=DATE:YYYYMMDD) with non-inclusive next-day end bounds (DTEND;VALUE=DATE:YYYYMMDD+1).
  • State Isolation in Simulation: The Forecast slider needed to recalculate multi-exam schedules across 10 days instantly while ensuring that moving the slider never altered stored data or checked tasks. We decoupled simulation state from application persistence, feeding synthetic parameter projections into pure functions.
  • Preserving Completed Work on Re-Plans: Rebalancing a schedule must never uncheck a chapter a student already finished. We architected the re-planner to lock completed task IDs and redistribute only unfinished time across available capacity.

Accomplishments that we're proud of

  • Zero Guilt, High Empathy: We successfully eliminated punitive red error warnings and guilt-inducing countdowns, creating a supportive tone that actually lowers stress.
  • Ultra-Fast 60 FPS What-If Simulator: Moving the Forecast slider dynamically recalculates 10-day schedules and updates all coverage bars without UI stutters or layout lag.
  • 100% Dependency-Free: Zero npm packages, zero external frameworks, zero API keys, and zero trackers. The entire application runs directly in any modern browser.
  • 1-Click Undo Architecture: Complete peace of mind—any missed-day reallocation can be rolled back instantly with a single tap.

What we learned

  • Plan-First Saves Days of Debugging: Writing out the mathematical worked examples for our demo scenario (Calculus, Physics, Economics) before coding caught schedule-boundary edge cases early.
  • Emotional Design Matters in Productivity: How software communicates failure is just as important as how it tracks success. Shifting from "You are behind" to "You're a little short. Here's what it would take" completely changes how a student feels.
  • Pure Functions Simplify Complex UIs: Keeping mathematical scheduling entirely separate from DOM manipulation made implementing the what-if simulator and calendar export straightforward and reliable.

What's next for Rebound — An Adaptive, Stress-Reducing Exam Schedule Engine

  • LMS Syllabus Integration: One-click syllabus import from Canvas, Blackboard, and Google Classroom to auto-populate exam dates and chapter counts.
  • Adaptive Spaced Repetition: Integrating active recall checkpoints into the study timeline based on forgetting curves.
  • Focus Timer with Break Protection: An integrated, calm Pomodoro-style timer that logs actual study time against planned estimates.
  • Peer Study Sync: Optional peer accountability links where study groups can coordinate shared exam study days without compromising schedule flexibility.

Built With

  • algorithms
  • client-side
  • css3
  • educational-technology
  • html5
  • icalendar
  • javascript
  • localstorage
  • mobile-friendly
  • responsive-design
  • rfc-5545
  • scheduling
  • vanilla-js
Share this project:

Updates

Submission history