Inspiration

UMD MAGE students juggle degree sheets, choose‑N elective buckets, semester offerings, and prerequisite chains - often across degree planning PDFs, Testudo, and informal advice. We wanted one place that respects how MAGE actually works (including M.Eng. vs GCEN credit rules) while still feeling fast enough for a late‑night "what do I take next?" moment. TerpPlanner started from that friction: make the degree legible before you walk into advising.


What it does

TerpPlanner is a web app for Maryland Applied Graduate Engineering students. Students build an Academic Twin from their transcript and program; the twin drives a dashboard with degree progress, a degree sheet view, an interactive prerequisite map, a drag‑and‑drop term planner with bucket checks, course compare, grade / professor views, and TerpAI — our Claude‑powered advisor that uses the same backend tools as the UI (degree analysis, semester plans, prereqs, grades, etc.), so answers stay tied to real program data.

We ship curated data for 19 MAGE programs and integrate public APIs (umd.io, PlanetTerp) where useful. The app is explicit that Testudo and official advisors still win for registration and policy.

GCEN angle: GCEN is a shorter certificate path (commonly 12 credits / 4 courses vs 30 credits / 10 courses for a typical M.Eng.). TerpPlanner’s structure maps to lighter loads and fewer terms; we’d like GCEN‑specific defaults and copy next so certificate students aren’t forced into “full M.Eng.” assumptions.


How we built it

  • Frontend: Next.js 14 (App Router), React, TypeScript, Tailwind, Framer Motion; D3 for the prereq graph; Recharts for charts; react‑markdown for TerpAI replies. The browser talks to the API through a Next.js proxy so API keys stay on the server.
  • Backend: FastAPI + Anthropic for a streaming TerpAI loop with tool calling (degree progress, semester plans, prereqs, grades, etc.). Data lives under backend/data/scraped/ with MAGE JSON from program sheets.
  • Infra: Secrets only on the backend; CORS for deployed frontends; optional Redis where used.

Challenges we ran into

  • Messy real‑world data: Scraped section titles needed display‑only cleanup so the UI stayed readable without changing degree logic.
  • Monorepo deploys: The Next app lives in frontend/; Vercel needed the correct root directory so production didn’t 404.
  • TerpAI + tools: Streaming, tool results, and a stable SSE contract took iteration; we hardened .gitignore and key hygiene after early git mistakes.
  • CORS + env: Hosted frontend + API only work when origins and BACKEND_URL match.

Accomplishments that we're proud of

  • A cohesive product: twin → progress → map → planner → TerpAI, not a loose demo script.
  • TerpAI parity: the advisor uses the same tools as the rest of the app, so judges see traceable reasoning.
  • Polished UX for a hackathon: dark “academic” aesthetic, motion, and structured markdown for TerpAI answers.
  • Responsible defaults: clear disclaimers about Testudo and official advising.

What we learned

  • Degree logic is a product, not a sidebar — buckets and pacing matter as much as chat UX.
  • Tool‑calling LLMs shine when the backend is truthy (structured JSON, not vibes alone).
  • DevOps (monorepo roots, secrets, CORS) is part of shipping a credible TerpAI story.

What's next for Terp Planner

  • GCEN‑first advising: dedicated GCEN presets, Plan Battle copy, and bucket labels for certificate students.
  • TerpAI: richer GCEN vs M.Eng. prompts, safer handoffs to human advisors, and optional interest tags (AI, security, robotics) end‑to‑end.
  • Accessibility & mobile pass for the dashboard and map.
  • Optional persisted profiles beyond browser sessionStorage if we grow past the hackathon.

We want TerpPlanner to stay grounded in how UMD MAGE students actually plan — including GCEN students who need lighter, certificate‑style guidance.

Built With

Share this project:

Updates