About the Project

Inspiration

At CUNY, students are often given a long checklist of required courses but little guidance on when and how to take them. Many of us have experienced the stress of figuring out which classes to pair together, only to realize a prerequisite was missed or a class wasn’t offered that semester. That inspired us to create CUNY PathFinder — a tool that takes the guesswork out of academic planning.

What We Learned

Through this project, we learned how to:

  • Work with graph theory (using NetworkX) to model prerequisites as a directed acyclic graph (DAG).
  • Use Pandas for organizing and cleaning course datasets.
  • Build a full-stack project with Streamlit on the frontend and FastAPI on the backend.
  • Manage time under hackathon deadlines, dividing work across UI, algorithms, and data pipelines.

How We Built It

  • Frontend: Streamlit for the user interface, making it fast to prototype and interactive.
  • Backend: FastAPI for handling course plan generation requests.
  • Logic: Pandas + NetworkX to enforce prerequisites, balance credit loads, and group courses logically by difficulty and professor ratings.
  • Data: Seed CSVs containing course offerings, prerequisites, professor ratings, and difficulty levels.
  • Export: Styled HTML-to-PDF generation for downloading the semester plan.

Challenges We Faced

  • Data complexity: Course catalogs are huge, inconsistent, and tricky to clean. We had to design seed datasets that were small enough for a hackathon but still realistic.
  • Algorithm design: Scheduling while respecting prerequisites, credit caps, and professor difficulty required multiple iterations before the greedy algorithm worked well.
  • Time pressure: Building a functional full-stack app in under 48 hours forced us to prioritize features and quickly resolve bugs.
  • Integration: Making sure the backend outputs aligned perfectly with the frontend display took careful debugging.

Outcome

CUNY PathFinder creates a personalized, semester-by-semester plan tailored to a student’s major, credit load, and completed courses. By factoring in prerequisites, course availability, and professor ratings, the platform gives students a clear path to graduation they can actually follow.

Built With

Share this project:

Updates