💡 Inspiration

I'm a student. And for a long time, my "study system" was a sprawling Excel file — a retrospective confidence tracker I'd built myself, with colour-coded cells, manual priority columns, and a separate task list that never quite stayed in sync with the rest.

It worked, until it didn't. Updating confidence scores meant scrolling. Reprioritizing meant copy-pasting. Scheduling meant opening a third tab. The friction was death by a thousand clicks.

I didn't need a better spreadsheet. I needed a tool that connected the three things I was doing separately — tracking what I know, deciding what to study next, and planning when to study it.

That's what became StudyMatrix.


🔨 How I Built It

StudyMatrix was built entirely using Medo, an AI-assisted development platform, which let me go from requirements document to deployed app without writing the stack from scratch.

The architecture I designed:

  • Next.js 15 (App Router) + TypeScript for the frontend
  • Supabase PostgreSQL + Prisma ORM for persistent storage
  • dnd-kit for drag-and-drop card interactions
  • Zustand for client-side state with optimistic updates
  • Framer Motion for animations
  • shadcn/ui + TailwindCSS for the design system

The app has four interconnected screens:

  1. Prep Tracker — rate chapter confidence with a 5-pip selector, visualize gaps with a heatmap
  2. Priority Board — drag chapters onto an Eisenhower matrix (Do First / Schedule / Delegate / Drop)
  3. Calendar — schedule study sessions as color-coded blocks in month or week view
  4. Tasks Table — a unified list view that stays in real-time sync with the board

The confidence-to-priority recommendation logic follows a simple rule system:

$$ \text{Urgency Score} = \frac{(5 - \text{confidence})}{4} \times \frac{1}{\max(\text{days_to_exam}, 1)} $$

Higher score → pushed toward Do First. Lower score → Schedule or Drop.


📚 What I Learned

The biggest lesson: AI-assisted development doesn't just save time — it changes how you think about building.

When implementation friction disappears, you spend more time on the right problems: system design, data flow, edge cases, UX decisions. I found myself writing detailed requirements documents and architecture specs instead of debugging boilerplate — and the output quality reflected that investment.

The real skill shifted from writing code to designing systems clearly enough that they can be built correctly.


⚡ Challenges

The hardest part wasn't technical — it was product clarity.

Features like real-time sync between the Priority Board and Tasks Table, bidirectional task completion, and the card-hand drag-and-drop all required very precise thinking about state. When does a card "live" in the database vs. the UI? What happens when a user completes a task from two places at once?

Translating those edge cases into unambiguous requirements — before a single line of code ran — was the real challenge.

Built With

Share this project:

Updates

Submission history