💡 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:
- Prep Tracker — rate chapter confidence with a 5-pip selector, visualize gaps with a heatmap
- Priority Board — drag chapters onto an Eisenhower matrix (Do First / Schedule / Delegate / Drop)
- Calendar — schedule study sessions as color-coded blocks in month or week view
- 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
- medo
- next.js
- postgresql
- sql
- supabase
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.