Inspiration

Registering for classes as a first year was complicated and frustrating, with many major requirements and prerequisites for classes. We wanted to create a visual, easily understood medium for major requirements and their prerequisites.

What it does

Our website allows the user to select any of the UC Davis majors and view the prerequisite flowchart, allowing them to better plan future class schedules.

How we built it

The process began with the backend data processing. First, all of the courses at UC Davis were downloaded from the course catalog and parsed to determine the prerequisites for each class. Then the course requirements for each major were also downloaded and parsed. This data processing used Bash shell scripting and XML parsers to extract the data. Next, Java was used to automatically format the flowchart for each major by processing the requirements for each course required by the major. Lastly, a web interface was developed with HTML, CSS, and Javascript to display the flowcharts to the users.

Challenges we ran into

Major inconsistencies in the course catalog pages made it difficult to extract courses information without errors. The human readable format of the course prerequisites was especially difficult to process and required a complex algorithm to extract to the prerequisite classes. Lastly, dynamic modification of the flowchart on the webpage was a major obstacle which took a large amount of time to overcome.

Overall, the large magnitude of the number of classes and majors made the task quite difficult, as all actions had to be automated and couldn't be hand processed.

Accomplishments that we're proud of

We're proud of obtaining an accurate database of the Davis course catalog without an API. The processing finished almost completely free of errors and this database can be used for future projects. Our design of a prerequisite processing algorithm was also a major achievement. It is able to determine with decent accuracy whether the student is required to take both of two courses or just one. It also filters out classes with keywords like "recommended" and "suggested". Lastly, our greatest accomplishment is creating the website that provides flowcharts for every major. With over 100 majors at UC Davis, this was no easy task and we are proud of this product we have designed.

What we learned

We learned a lot of technical skills while working on this project. Regular expressions were used heavily in the data processing which we have gained significant skill in. We also re-familiarized ourselves in the programming and design of webpages, which we had some experience in prior.

For all of us, it was our first hackathon and we have learned a lot about this type of event. Coding over an long period of time was a new experience for us yet it was rewarding.

What's next for Davis Course Visualizer

Our current design has large room for improvement, namely in accuracy and features. A direct API or access to the UC Davis course catalog would significantly improve the accuracy of the major requirement courses and especially with the course prerequisites, which wouldn't have to be interpreted by an algorithm. We also have plans to expand the features on our website such as hyperlinks, more color coding, and student personalization.

Built With

Share this project:

Updates