Inspiration
It’s 2 AM. You’ve missed two assignments, you have a midterm in four days, and your inbox is full of emails you haven’t opened. You know what you need to do—but you don’t know where to start. So you end up doing… nothing.
We found ourselves in this exact position—balancing coursework, internship applications, clubs, chores, and everything else in between. When the tasks started piling up, it felt overwhelming, and we didn’t know where to start. That led to procrastination, anxiety, and a lot of self-doubt.
We tried everything—making to-do lists, trying to organize our work—but nothing actually worked in the moment. That’s when we realized the real problem wasn’t knowing what to do, it was turning everything into a plan we could realistically follow. That’s why we built Comeback.
What it does
Comeback Coach helps students recover from academic crunch: they enter tasks (exams, assignments, projects) with deadlines and estimated hours, plus when they’re busy (classes, work, etc.). The app uses AI to prioritize and break work into study chunks, then a deterministic scheduler places every chunk into real free time—respecting daily hour caps and busy blocks. If there isn’t enough time for everything, the plan surfaces overload honestly and focuses on what matters most first. It runs without login, doesn’t persist server-side user data in the described flow, and returns a day-by-day plan students can follow immediately.
How we built it
We used Next.js 16 (App Router) with React 19 and TypeScript. The UI is Tailwind CSS with Lucide icons; the flow is landing → /plan (input) → /results (plan).
The POST /api/coach-plan route validates requests with Zod, normalizes input, then runs a pipeline: runPlanner (OpenAI gpt-4o-mini, structured output for rankings and chunks) → runScheduler (deterministic placement into free windows using date-fns) → assembleCoachPlan to build the response. Framer Motion supports polish in the UI.
We added a deterministic mock planner so the app still produces a real schedule without an API key if the key is missing or AI fails. The client form expands recurring busy blocks across the planning window so the backend gets concrete intervals.
Challenges we ran into
Splitting “smart” vs “reliable”: Letting the model prioritize and chunk work while guaranteeing repeatable, calendar-faithful scheduling required a clear boundary—AI plans what to do; code decides when it fits.
Time and recurrence: Turning “class every Tuesday/Thursday” into exact dated busy intervals and merging overlaps for the scheduler took careful handling.
Accomplishments that we're proud of
A hybrid architecture: LLM for prioritization and chunking plus a transparent, testable scheduler—not a chatbot that invents impossible schedules. Student-realistic constraints: Busy blocks and per-day caps baked into scheduling, not bolted on as copy.
What we learned
LLMs are strong for judgment calls (ordering tasks, splitting sessions, encouragement); deterministic code is essential for time-boxed, conflict-free schedules.
What's next for Comeback
We want to integrate Comeback with Google Calendar so the app can read busy times automatically instead of only manual blocks. Plans would be generated around real commitments the student already has, which saves time and reduces mistakes when entering availability. That sets us up for fewer scheduling conflicts and a more accurate comeback plan for busy students.
Built With
- next.js
- openaiapi
- react
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.