-
-
Homepage
-
Once signed in, you can upload your exported DARS pdf (tutorial included)
-
Once your plan is uploaded, this dashboard is displayed
-
This is what a plan looks like
-
On the side, there's a sidebar, which includes a section on enrollment strategy
-
Our AI chatbot can answer questions about the plan and any classes
-
We added a dark mode for accessibility
Inspiration
Planning classes at UCLA is a notorious headache. Students cross-reference DARS PDFs, BruinWalk ratings, prerequisite chains, and enrollment windows across a dozen tabs, and one wrong move means a brutal quarter or a delayed graduation. We wanted to fix that.
What it does
Blueprint turns your DARS report into a balanced, quarter-by-quarter 4-year plan in seconds. It parses your completed courses and remaining requirements, generates a prerequisite-respecting schedule using AI, surfaces BruinWalk difficulty ratings to prevent workload spikes, and tells you exactly what to enroll in during first vs. second pass. Plans are interactive, drag and drop courses between quarters, ask the built-in AI what-if questions, and save multiple versions to your dashboard.
How we built it
Next.js 16 + React 19 frontend with Tailwind CSS. Firebase for Google authentication and Firestore plan persistence. OpenAI for DARS parsing and structured plan generation. BruinWalk scraped data for real difficulty ratings. Drag and drop via @hello-pangea/dnd.
Challenges we ran into
UCLA's DARS PDFs are notoriously unstructured. Extracting completed courses and remaining requirements required heavy prompt engineering iteration. Getting the LLM to strictly respect hard constraints (prerequisites, quarter availability) while also optimizing soft ones (workload balance) was genuinely difficult. Managing drag and drop state across quarters while keeping everything synced with Firestore also pushed our React state management.
Accomplishments that we're proud of
The workload balancing actually works. The AI produces schedules that consciously avoid stacking hard classes. We reduced a process that takes students hours into a single PDF upload. The UI feels polished enough that it doesn't look like it was built in 24 hours.
What we learned
How to guide LLMs to produce strictly structured JSON outputs that satisfy logical constraints. Deeper Next.js App Router patterns with server actions. How to wire Firebase Auth + Firestore into a real product cleanly and securely.
What's next for Blueprint
Real time UCLA enrollment data (seat availability, waitlists), support for double majors and minors, and a social layer so friends can coordinate taking classes together.
Built With
- firebase
- firestore
- nextjs
- openai-api
- react
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.