Inspiration
Every college student has sat in front of a course catalog that reads like a phone book — hundreds of classes, zero context for what they should choose & which unlocks what career path. I built iGauchoBack because the knowledge that changes your degree lives in a senior's head and dies when they graduate. I wanted to make it permanent, visual, and open-source to everyone.
What it does
iGauchoBack is an interactive degree planning platform that maps every course, prerequisite chain, and career outcome for your major at your university. Pick your school and major and you get a live visual graph showing exactly which classes open which doors. Upload your transcript and AI auto-fills every course you've already completed, showing you precisely what's left and where it leads. Built on open-source data contributed by students, for students — with 17 years of real grade distribution data layered in so you know which classes are actually hard before you enroll.
How I built it
Frontend: Next.js 14 App Router + React 18 + TypeScript, with React Flow (@xyflow/react) powering the interactive prerequisite graph
Backend: Next.js Route Handlers as a serverless REST API — no separate backend service
Database: Supabase (PostgreSQL) for roadmap data, community features, and user progress — with static JSON seeds as a zero-config fallback
Auth: Supabase Auth with Google, GitHub, and LinkedIn OAuth via SSR session cookies and Next.js middleware
AI: Claude API for PDF transcript parsing — extracts completed courses, normalizes course codes, and maps them to roadmap nodes automatically
Data pipelines: tsx scripts to parse UCSB GEAR PDFs, UCLA and Berkeley course catalogs, and Daily Nexus grade data into structured JSON seeds
Reliability: Per-IP rate limiting on AI endpoints via Vercel Edge Middleware, Sentry observability across client and server, and edge caching on read-heavy roadmap routes
Deployment: Vercel production with GitHub-integrated builds
Challenges I ran into
Data at scale from scratch. There is no clean, structured API for "here are all the courses in this major and how they connect." I had to parse university PDF catalogs, GEAR requirement grids, and department websites — then write validation scripts to catch inconsistencies before seeding the database. Doing this for 87 majors across 3 schools in 48 hours required building the pipeline first and trusting it.
Transcript parsing is messier than it looks. Every university formats transcripts differently. Course codes like "CMPSC130A", "CMPSC 130A", and "CS 130A" all refer to the same class. Getting Claude to normalize these reliably across UCSB, UCLA, and Berkeley formats required iterating on the extraction prompt until edge cases stopped breaking the matcher.
Graph layout without overlap. React Flow doesn't auto-layout — every node needs an x/y position. With 8–18 nodes per roadmap and prerequisite chains that vary by major, I had to write a custom layout engine (lib/roadmap-layout.ts) that spreads nodes with 300px column gaps and 220px row gaps, then applies it at runtime so cards with descriptions never collide.
Auth state on SSR. The "Checking session…" flash on page load is a known pain point with Supabase + Next.js App Router. Resolving auth state server-side before first render — without blocking static pages — required careful middleware scoping and cookie handling across protected and public routes simultaneously.
Accomplishments that I'm proud of
87 majors mapped across UCSB, UCLA, and Berkeley in 48 hours — 70 with fully live interactive graphs 10,559 courses indexed with 17 years of real grade distribution data (Fall 2009 – Winter 2026)
AI transcript parsing that actually works — upload a PDF, your completed courses auto-populate on the graph in seconds
A platform that looks and feels production-ready — edge caching, rate limiting, Sentry observability, multi-provider OAuth, and a community hub with Q&A, reviews, and alumni outcomes — not a prototype
Open source from day one — any student at any school can submit their major's roadmap via GitHub PR and watch it go live
What I learned
Scope is a lie you tell yourself at the start of a hackathon. I thought mapping one school's courses would be the hard part — it turned out structuring the data pipeline to generalize across schools was the actual problem. Building the seed generator first and treating data as a first-class engineering problem — not an afterthought — is what let us ship 87 majors instead of 10.
I also learned that the AI feature that sounds coolest in a pitch (transcript parsing) is the one that requires the most defensive engineering in practice. LLM outputs are probabilistic. You have to validate, normalize, and gracefully handle the cases where the model returns something unexpected — or your flagship feature breaks on the most important demo of the night.
What's next for iGauchoBack: The map your university never made for you.
1 - Include a 4 year plan from previous years so others can compare and contrast
2 - Expand to all UCs, then all colleges in CA before scaling to different states to help millions of others
3 - Transfer credits from CC and AP credits into each university and major
4 - Structured Logging for debugging
5 - A/B Test the Landing Page CTA
Log in or sign up for Devpost to join the conversation.