Inspiration
Scheduling is a quarterly struggle for students including us. We tried to save some time and mental energy that goes into this process for students.
What it does
Our design takes an input of which classes you wish to take and our program will give you all the possible combinations of the classes that you can take without facing any time clashes. Show students all the possible schedules they can have for the upcoming quarter, with an emphasis on showing different sections of classes they can take. More relevant with scheduling class times to make an ideal quarter schedule that fits student needs.
How we built it
To design the application, we used python in order to be able to read and write to CSV files. CSV files were a great way to store the large amounts of class data from UC Davis’s SisWeb, and in the future, when we’re using web-scraping tools in order to extract data more efficiently and in real time, having our data readily available in a CSV file will make it much easier to read and analyze. After we read the class schedule data in from the CSV file, which would tell us, class codes, what day and time they occurred, and the professor that was teaching the class, we used python to parse through the data and get information from the user regarding key classes they want to be included in their schedule. Once we did that, we could get all possible combinations of classes and output the best-case ones which didn’t have any time conflicts.
Challenges we ran into
Because we all had varying levels of experience in python, we had to figure out how to best delegate tasks so that they covered everyone’s strengths. When programming the part of out application that would parse through all the data and find all possible combinations of the given classes, we had difficulty figuring out how to create a nested for loop that would iterate from a section of a class down to another section of a class as to create a group of various sections of classes. In the end, we were able to figure out a good, efficient strategy that would run through all the sections of the classes.
Accomplishments that we're proud of
We were proud of the fact that we were able to create a functioning python application that would look through large amounts of data to find the best options, despite the fact that we all had varying levels of expertise in python
What we learned
We definitely learned a lot about how to work with databases. Additionally, coding in Python was new for so that was definitely a learning experience.
What's next for ClassCanvas
Currently, we have focused mainly on CS classes and hopefully we will easily be able to integrate all the other classes too. Additionally, we will add a feature where the user can input their time constraints(if they have job, or if they don't want to take late classes, etc) and the algorithm will only design combinations taking into consideration the user's preferences. We can also add a way the use can list priorities in their class choice and if there are two or more classes in which they only want to take one. ClassCanvas has a lot of further scope. It can also look at locations and see which sections would be closer for the user in commuting.
Built With
- csv
- database
- python
Log in or sign up for Devpost to join the conversation.