Inspiration

Feeling “rotted” at home is real—especially for students juggling classes, mental load, and uneven energy. We wanted something kinder than a generic to-do app: a tool that meets you where you are, listens to how you feel, and turns that into gentle momentum.

What it does

GetUp creates mood-based, right-sized plans. After a quick check-in for mood, energy, and anxiety, you choose either a short focus block or a full-day plan, add any fixed events, and pick your intents like study, hobby, chores, or movement. The app then generates a clear schedule with tiny steps, sensible difficulty, and fallbacks, so you can save it, mark items done, regenerate smaller or bigger versions, and revisit your history—all in a calm, pastel interface.

How we built it

We built the frontend with React, Vite, and TypeScript, styled with Tailwind and a small component system for buttons, cards, and separators, then wrapped everything in a responsive shell with a sidebar and our mascot guiding attention. On the backend, Firebase handles Auth, Firestore, Hosting, and a Cloud Function that calls Google Gemini server-side to compose plans. We validate Gemini’s output against a strict JSON schema, retry once on errors, and store the final plan with the original inputs and completion state.

Challenges we ran into

Our biggest hurdles were taming ESLint and TypeScript rules that initially blocked deployments, getting the Cloud Functions auth context correct across emulator and production, and keeping secrets strictly server-side while exposing only the safe web config. We also had to coordinate branching so new functionality and the redesigned UI could land without overwriting each other’s work, and we refined prompts until Gemini reliably returned valid, time-aware plans.

Accomplishments that we’re proud of

We’re proud that the app feels genuinely gentle and accessible, that the AI plans are schema-guarded and respect real time windows, and that keys never touch the client. We also shipped a clean, typed MVP within hackathon time, built a small design system we can grow, and kept a healthy Git flow as the team worked in parallel.

What we learned

We learned how much tighter AI output becomes with clear schemas and constraints, how to wire Firebase Auth/Firestore/Functions smoothly in 2nd Gen deployments, and how a minimal design system accelerates iteration. We also came away with better habits for collaboration—small PRs, rebasing carefully, and protecting main.

What’s next for GetUp

Next, we’ll import calendars to auto-detect hard events, add reminders and streaks with a lightweight PWA, and personalize plans as the app learns what works for each user. We’ll round it out with mood journaling, gentle micro-wins, deeper accessibility checks, localization, and a simple “study together” mode.

Built With

Share this project:

Updates