SBU Course Plannar

Inspiration

As students at Stony Brook University, we've all experienced the frustration of course planning. Which courses have the best grade distributions? What are the prerequisite chains for our major? How do we ensure we're meeting all our degree requirements? These questions often require navigating multiple disconnected university websites, manually comparing data, and hoping we don't miss anything.

We built this Course Planning Tool to solve these problems in one unified, data-driven platform. Our goal was to empower students with the information they need to make informed decisions about their academic journey.

What We Built

Our application is a comprehensive course planning platform featuring three main components:

1. Grade Distribution Explorer

Students can explore historical grade distributions across 8 semesters (Fall 2023 through Summer 2025) with powerful filtering capabilities:

  • Filter by semester type, year, department, course level, and class size
  • Set A-rate ranges to find courses with specific grade distributions
  • View detailed section-by-section breakdowns with interactive bar charts

2. Course Prerequisite Roadmap

An interactive graph visualization built with ReactFlow that shows:

  • Visual prerequisite chains for any department
  • Color-coded edges (green for full prerequisites, yellow for partial)
  • Smart highlighting when selecting courses to see what comes next
  • Search functionality to quickly find and focus on specific courses
  • Draggable nodes for better exploration

3. Major Requirements Tracker

A comprehensive major exploration tool that:

  • Groups required classes by department for easy visualization
  • Shows covered vs. uncovered SBC requirements
  • Helps students understand what courses they need to complete their degree

How We Built It

Data Collection

We developed Python web scrapers using Selenium and BeautifulSoup to extract:

  • Course catalog data (course codes, names, prerequisites) from the university website
  • Grade distribution data from the class evaluation system
  • Program/major requirements from the academic catalog

We parse prerequisite text using regex to extract course codes and build relationship graphs dynamically.

Frontend Development

Built with Next.js and React in TypeScript, featuring:

  • ReactFlow for interactive graph visualization
  • Tailwind CSS for responsive, modern styling

Key Technical Challenges

Parsing prerequisite text was more complex than expected. Courses can have simple prerequisites, OR conditions where you only need one course, AND conditions where you need multiple courses, or combinations of both. We had to build special logic to understand all these different formats and show them correctly on the graph with different colored lines.

Rendering hundreds of course nodes and connections while keeping everything smooth was challenging. We had to organize courses by level, highlight connections efficiently, and make sure the interface stayed responsive even when showing large departments. Handling over 60,000 grade records also required careful planning to load and filter data quickly.

Data scraping on inconsistent websites took a lot of time. The university websites had complex login processes and inconsistent page layouts. We spent many hours fixing issues when pages wouldn't load or when our data extraction would randomly fail, building in error handling to make the scraping more reliable.

What We Learned

Technical Skills

  • Scraping with Selenium automation, handling dynamic content, and parsing complex HTML structures
  • Implementing course level calculations, topological sorting, and relationship traversal
  • Working with large JSON datasets, regex pattern matching, and data transformation pipelines
  • Memoization strategies, component optimization, and efficient state management

Impact

This tool helps students:

  • Make informed decisions about course selection based on historical data
  • Plan their academic path with visual prerequisite chains
  • Track progress toward degree completion
  • Save time by consolidating information from multiple sources

Future Improvements

  • Professor ratings and reviews integration
  • Export functionality for academic planning documents
  • Personalized recommendations based on major and completed courses
  • Real-time updates when new grade data becomes available
Share this project:

Updates