Inspiration

In the past each and every one of us has had at least one bad quarter because we didn’t know how to balance our workload

We wanted to create a schedule planner that creates a schedule for the next quarter based on the classes we’ve taken, while taking into account what general education courses we’d like to take and CS courses, as well as desired number of units, to build a quarter schedule that adheres to our desired workload

What it does

The planner takes a list of classes that the user has taken in the past (as well as the courses they are taking), finds out what general education requirements have been partially satisfied by interpreting the GEs each taken class satisfies using the PeterPortal API

We used a directed graph to store the classes and their prerequisites such that an edge (u,v) occurs when class v requires class u.

When determining the classes to take, we determine priority based on if it is a Lower Division or Upper Division class and if it’s a major required class

How we built it

We used the Streamlit library to build a nice looking graphical user-interface that takes the user input and displays the output for the classes they can take next quarter

Using the “requests” Python library, we communicated with the PeterPortal API to acquire info on the general education requirements that the courses, inputted by the user, fulfill. We used a class to represent an object that stores a mapping of general education requirements each to a respective list of courses that fulfill said those requirement

Challenges we ran into

We wanted the application to recommend a schedule for the next quarter based on the requirements for the degree that the student is enrolled in, but couldn’t find any functionality from the PeterPortal API that does so

Since this was our first time working on a project that communicated with an API, we had some bugs in our project in terms of lack of proper handling of error responses from the API

Accomplishments that we're proud of

We were able to get more familiar with version control, namely Git. Additionally, we got hands-on experience with PeterPortal API. Also, the soft skills such as communicating, brainstorming ideas, and working as a group helped us gain experience working together on a collective project.

What we learned

When coming up with project ideas, we learned to search for problems that were relevant in our personal lives. For example, we came up with our project idea by recognizing the difficulty that each of us has had when planning out our next quarter

We learned how to practice good code design practices by splitting separate functionality into modules and classes, but there is still much room for improvement

What's next for UCI Quarter Planner

We may potentially integrate a web-scraper which scrapes the UCI course catalog to glean information regarding a certain major, this way we can expand our planner to all majors

Communicating with PeterPortal API to look at professor reviews and recommend professors based on which professors were highly favorable with students

Built With

Share this project:

Updates