Inspiration

At UW, planning a degree means juggling the course catalog, department pages, MyPlan, and the Time Schedule, and they don't always agree. It gets much harder with a double major: two sets of requirements, capacity-constrained majors, courses offered only one quarter a year, and prerequisite chains that quietly push graduation back.

We kept hearing the same questions: Which courses count for both of my majors? Can I take machine learning before my internship? Why can't I register for this class? A general chatbot can guess, but it can't check. We wanted a planner that checks first and explains second.

What it does

DegreeGPS builds a quarter-by-quarter plan for UW Seattle students based on their majors, completed courses, and goal (for example, a machine learning internship).

  • Checks prerequisites, including AND/OR rules, minimum grades, and courses that may be taken concurrently.
  • Uses real Winter 2027 offerings from the UW Time Schedule and flags courses that only run in certain quarters.
  • Detects time conflicts between sections.
  • Finds double-major overlaps, such as Applied Math courses that also count as CS electives.
  • Explains every recommendation with citations to official UW pages, so students can verify it.
  • Separates verified results (next quarter, real sections) from tentative ones (later quarters, based on typical offerings).

How we built it

  1. Data. We collected official requirements for 9 UW majors (CS, Applied Math, Informatics, Statistics, Chemistry, Physics, Biology, Neuroscience, Bioengineering) into structured JSON: 179 courses, 126 requirement rules, and about 950 course-to-requirement mappings. Every record keeps its source URL and the date we checked it.
  2. Planning engine. A deterministic engine evaluates prerequisites and requirement rules and generates valid plans. The AI never decides whether a plan is valid.
  3. RAG. Official requirement pages are chunked by section and retrieved to ground the AI's explanations, with citations.
  4. Interface. We designed the flow in Figma (landing, onboarding, roadmap dashboard) and built it with Next.js, with a FastAPI backend.

Challenges we ran into

  • Messy official sources. Department pages, the General Catalog, and checklists sometimes disagree on course numbers, credit totals, or capstone lists. We logged each conflict instead of guessing.
  • Prerequisites are more than a list. Minimum grades, "may be taken concurrently," corequisites, placement exams, and joint-listed courses each needed their own representation.
  • "Offered" is not "eligible." A course can be listed but restricted to majors or registration periods, so we kept those states separate.
  • Time. Limiting verified section data to one quarter let us stay accurate instead of covering everything badly.

Accomplishments that we're proud of

  • A clean, source-backed dataset for 9 majors and 179 courses, built and checked in one weekend, with every rule traceable to an official page.
  • Catching real planning traps automatically: a missing prerequisite (MATH 208 before CSE 446), Autumn-only course sequences, and a time conflict between CSE 446 and AMATH 482 in Winter 2027.
  • Spotting double-major overlaps that students usually only learn about from an adviser.
  • An interface that is honest about uncertainty, with clear "verified" and "tentative" labels.

What we learned

  • Trust comes from showing sources and admitting uncertainty, not from sounding confident.
  • Splitting the work between a rule engine (correctness) and an LLM (explanation) made the product more reliable and easier to test.
  • Good data work is most of the product: provenance, version dates, and explicit "needs review" states matter.

What's next for DegreeGPS

  • Import section times for more departments and future quarters.
  • Add more majors and older catalog-year profiles.
  • Let students export a plan to share with their adviser.

DegreeGPS is a planning aid, not an official degree audit. Students should confirm plans with their adviser and DARS.

Built With

Share this project:

Updates

Submission history