Inspiration
As a college students, we have the recurring problem of wasting time defining our schedules at the beginning of every quarter or semester. Most students want to minimize break times between classes to enjoy their free time, extracurricular activities and organize extended study periods.
What it does
A user lands on the home page and searches for the classes required for the semester or quarter. Then he will select classes that he must complete in the current quarter and elective ones that he wants to take. By clicking on the organize bottom, the page will lead the user to a scheduling dashboard showing required and elective classes sorted by the least amount of break time during a day for a week. The user can block time for extracurricular activities in the "Extra Activities" section. The user can then drag the bottom to indicate the time where it wants the schedule to minimize for break times during the week based on the extracurricular activities, required and elective courses. Once the user sees the desired schedule, he or she can select it and a print-out version will be available.
How I built it
Front was created using Angular 7, TypeScript and the Material UI framework.
Challenges I ran into
We ran into the blocker of creating a dynamic search feature for searching courses.
Inspiration
Course scheduling is a pain at UCSB. You need to make a list of courses and constantly check and parse different department pages without being able to see how potential sections fit together.
What it does
Our project pulls data on all courses from UCSB for the winter 2019 quarter. It then uses convex optimization to try and narrow the possible space of all potential schedules. We then found an iterative solution to ensure we could implement all combinations (leave no stone unturned).
How I built it
We built it by constructing a combination algorithm for all of the possible schedules
Challenges I ran into
Integration between front-end and back-end Linear Algebra and Matrix Decomposition which stalled our LP solution
Accomplishments that I'm proud of
One of the team member’s went out of his comfort zone in terms of learning a new frontend framework. Learning from students from different schools and academic backgrounds. The time efficiency in our timing validation. Effective use of pandas to break down course schedules. A mathematical formulation that can allow expansion of this idea to large datasets.
What I learned
I learnt that asking for help earlier on the hackathon would have yielded better results in terms of troubleshooting errors. How to implement large scale algorithms Create an effective web scraper
What's next for
Finalize interactive dashboard for course scheduling options Build a matrix converter to schedule to print out clean enrollment instructions. Implement methods that help to narrow down preferences among scheduling. (Min vs. max days, Min vs. max spread, blocked off time periods for curricular/work/sleep, implement preferences on electives to ensure preferred electives first)
Log in or sign up for Devpost to join the conversation.