Inspiration

How many times have you stressed over choosing courses for next semester? Have you ever found a class you really want to take and then... an error pops up displaying a random prerequisite you've never seen before :( Traditional course registration is often outdated and confusing. There may be long lists of courses to choose from encompassing various levels of experience. Students frequently struggle to effectively find and plan for their future academic interests. We now introduce myCourseBuilder: a tool that reimagines course planning via data visualization to guide its users towards the courses and interests they wish to pursue.

What It Does

With myCourseBuilder, users initially choose a specific term and department code from a dropdown containing all information in a given database. They are then taken to a page displaying all available courses, each course initially set to a gray background.

Users then have the option to:

  1. LEFT click once on a course that the user has already taken, which makes the course green.
  2. RIGHT click once on a course to display that course's description which contains information such as course name and prerequisites.
  3. LEFT click and DRAG a specific course to view the courses from a different perspective and gain a clearer understanding of the relationships between courses.

Upon selecting courses they have taken, students can identify courses they are able to take via arrows that point from courses to their prerequisites. This feature is useful for both underclassmen as they complete core courses as well as upperclassmen in choosing upper electives. Thus, the overall course selection process is easier to visualize and valuable in saving time and reducing unneeded stress!

How We Built It

  • Back-End: The nodes containing the information for each course were taken from the pittapi, created in Python, and converted into a .json file to connect to the local server
  • Front-End: The website was built with the a data visualization package called d3 to display the courses on the local server

Challenges We Ran Into

  • Within each course's description, isolating the distinction between prerequisites and co-requisites
  • Identifying a uniform way to parse prerequisites from each course's description given AND and OR conditions
    Example: (CS 0441 or CS 0406) and (CS 0445 or CS 0455 or COE 0445)
  • Assessing trade-offs between product viability and time constraints throughout the design process

Accomplishments That We're Proud Of

  • Time management and building around the clock
  • Resolving branching issues and pulling/pushing on GitHub
  • Working as a team and tackling problems together
  • Balancing the work and also having fun creating something cool!

What We Learned

  • Caleb: Communication and collaboration between members, design process cycle from brainstorming to testing to modifying, etc.
  • Justin: Experienced collaborating in a group tech project and pondered about implementing tricky algorithms into programs
  • Kenny: Learned how to work with a team to develop new projects, learned more about Python, the Pitt API, and task-management
  • Robbie: Discovered the d3.js library and how it can be used to model all sorts of different types of data

What's Next for myCourseBuilder

  • Adding functionality for nodes/courses that users can take given selected courses, designated by a yellow background
  • Making the product available for universities in localized areas by combining multiple databases (aids students with cross-registration)
  • Given a user's major, incorporate a table of required courses that automatically highlights/grays out requirements as courses are selected
  • Combining different departments to account for users taking additional majors or minors

Tracks

  • Student Life
  • Education
  • Beginner Track (two first-time hackathon members)

Built With

Share this project:

Updates