Inspiration

As new college freshmen, we were shocked to discover that our academic counselor had to block out 4 hours in the day just to ensure our schedules for the fall semester was properly drawn up. Following up on this concern we found that countless number of our friends were facing the same issues. If this was the end of the story, we wouldn't have made such a big deal, however the constant back and forth between academic counselors due to the complexity of the system is what truly drove our concerns home. As we dug deeper, we found that a 2018 research paper that was done by Hanover Research suggested that this was not merely an issue that faced us alone but a national issues that has yet to seen proper solutions.

What it does

It is an automatic web scheduling app that uses a web crawler to draw information about classes from the school website and creates a schedule based on the needs of each student with the option of a drag and drop class adjustment feature.

How I built it

We used HTML, JavaScript and CSS for an interactive front end. We used Java Spring for the back end scheduling and the Selenium package to web scrape college course time and dates. In the backend, we used a recursive algorithm that fits the course schedules based on the availability of each class. For the web crawler part, we used the link for the course on course selector to grab all the information which we compiled into a hash map.

Challenges I ran into

One of the key challenges we ran into was the integration of the backend software with the frontend software. We found numerous bugs that caused certain inputs to be wrong while certain events were not triggered. In addition when events were triggered often times there would be errors within itself and thus would cause headaches as we try to resolve the dependency errors and work out a method to decouple the system.

Accomplishments that I'm proud of

We came up with a working algorithm that can effectively generate schedules based on class selections made by a pretend student. We were also able to use a spring framework to make sure the web application is connected to the backend of the code. Furthermore, we made a frontend that is user interactive and includes drag and drop for calendar repositioning.

What I learned

We learned how to effectively create a web application by using previously written frameworks and other libraries as most of us never worked within a real project and only ever write in basic java and our own thoughts. We also learned the development of frontend software which was placed on less importance before compared to learning proper java.

What's next for Universal Automatic Scheduling System

We want to expand its capabilities to include a review system in which students can comment and leave suggestions for future potential students as to avoid the hassle of constantly browsing other sites like reddit to find suggestions. On top of this, another key feature we wish to do is incorporate a better algorithm that can use previous student data to create a more personalized schedule. Hopefully if the project gets enough traction we hope to go open source and make it free for any school or student to use.

Share this project:

Updates