Inspiration

We saw how confusing and overwhelming DARS reports can be for UW–Madison students. Many students struggle to understand what they’ve completed, what’s left, and how to structure future semesters efficiently. We wanted to build a tool that turns DARS into a clear, personalized graduation roadmap.

What it does

GradFlow is a web app that helps UW–Madison majors generate a graduation plan from their DARS report. Users upload a DARS PDF (or paste its text), and the app parses completed courses, in-progress courses, and remaining requirements. Students can rate courses (1–5) to personalize recommendations and generate up to three plans: Fastest Completion, Balanced, and Summer-Optimized. Plans respect prerequisites, credit limits, and term offerings using real course data from static.uwcourses.com. An optional AI mode uses OpenAI to generate a customized plan from the same inputs.

How we built it

We built GradFlow with a React + Vite frontend and a FastAPI (Python) backend.

  • Used pdfplumber to parse DARS PDFs
  • Integrated static.uwcourses.com for course and prerequisite data
  • Built a constraint-based planner engine to enforce credit limits and prerequisite rules
  • Added an OpenAI-powered AI mode for generating intelligent alternative plans

Challenges we ran into

  • Parsing DARS PDFs reliably (format inconsistencies and text noise)
  • Normalizing course names across different formats (e.g., CS300 vs COMP SCI 300)
  • Ensuring plans never violate prerequisites
  • Preventing already completed or in-progress courses from being rescheduled
  • Designing a scheduling algorithm that balances CS, STEM, and Gen Ed requirements

Accomplishments that we're proud of

  • Successfully built a working DARS parser
  • Enforced strict academic constraints (12–18 credits, prerequisite safety, etc.)
  • Integrated real UW course data
  • Created three distinct planning strategies
  • Added AI-powered plan generation

What we learned

  • Real-world data parsing is much harder than expected
  • Constraint-based scheduling requires careful edge-case handling
  • Clean normalization and validation logic are critical
  • AI works best when layered on top of strong deterministic logic

What's next for GradFlow

  • Improve Gen Ed matching and attribute handling
  • Add smarter personalization using ML
  • Integrate directly with UW systems for live data
  • Deploy publicly for UW students

Built With

Share this project:

Updates