Inspiration

The problem of creating a long-term class schedule has always been tedious and unreliable. Previous attempts have been made to solve this problem with DegreeWorks and other similar projects, but no one has ever been successful at attracting students away from Banner. There are multiple reasons for this:

  1. A user-friendly interface that solves the problem of long-term curriculum planning does not exist. Coursicle attempts to do this, but it falls short when the end-user wishes to constrain their search to their unique major, minor, and/or college curriculum requirements.
  2. Banner has access to user data that third-party developers do not have access to.
  3. No alternative solution has been marketed well enough that convinces students to stop using Banner.

The ScheduleAdvisor project seeks to address each of the aforementioned challenges in a technology-driven way.

What it does

Users can input their major receive back a schedule for the next 8 semesters. The classes are populated with major requirements as a priority and then with general education requirements. When populating the schedule, course prerequisites are taken into account.

How we built it

We used the Go along with gin and sqlite3 for the backend, and JavaScript in combination with the React frameworks.
The project is freely available to clone and work with on GitHub.

Challenges we ran into

Some unforeseen issues we ran in were:

  1. Incomplete Course Data
  2. Difficult to find major requirements which oftentimes listed classes that were not in the database of courses scraped from online.
  3. Coming up with a quick scheduling logic
  4. Hosting the backend

Accomplishments that we're proud of

  1. We designed and implemented an end-to-end system (frontend + backend).

  2. We collaborated and communicated well.

  3. We accommodated learning new frameworks and languages.

  4. We thoroughly enjoyed the process of creating this app.

What we learned

We learned that it is possible to collaborate across different time zones, from east to west, across the USA. In addition, even with the same kind of people who are interested in the technicalities of technology, there can still be some beautiful diversity that helps contribute to a project.

Domain name

scheduleadvisor.tech

What's next for ScheduleAdvisor

While the current functionality is not very broad, the plan is to expand upon it. Right now only computer science and international relations are supported as majors as scraping the major requirements is tedious and not very easily automated. Once every major is supported there, we would also want to include a questionnaire, such as asking for intended double majors or a minor, non-major preferences, and what times a user would want to start end classes. We would also continue developing the "Generate New Schedule" button, which would charter a different curriculum, but with the same majors/minors/other preferences as requested.

Our backend already has the functionality to take a course and return all of its prerequisites, which is something that could easily be made accessible to a user. We are also thinking about adding additional logic to the backend which creates "timed" schedules. This means classes can't have overlapping starting and ending times.
We would also like to eventually give our users the capability to input classes they have already taken along with their current enrollment semester, as to make the scheduler more widely usable.

On a broader picture, we would seek to include other universities beyond William & Mary.

Built With

Share this project:

Updates