Finals is a stressful time for everyone

In UC Davis, for teachers, they are busy preparing for lectures and creating exams for students. For students, they are studying for final exams and wrapping up projects and written papers. The current finals' week in UC Davis is from Monday to Friday with finals starting as early as 8AM and ending at 10PM. By having early and late start times for final exams, it adds additional stress to teachers and students. In addition, since there is neither a study day/ week nor blocking of final exam times, UC Davis often prepare for their earlier finals during the weekend prior to finals week, but then, struggle to prepare for their later finals.

What it does

We implemented an scheduling algorithm that will create a schedule for finals course with one study day during finals week (Monday or Wednesday), where students are given more time to study and prepare for finals. The algorithm will also remove finals that start at 8AM and 8PM by creating five time blocks in which each day of finals week that final exams can occur.

How we built it

We used Python to web scrape available seating in many UC Davis buildings for final exams from an openly accessible dataset through the University Registrar. Moreover, the course data was web scraped and modified to be fit for data analysis. With Python, we also created the scheduling algorithm that will generate a JSON file, assigning courses with an final exam day and time block. That JSON file was then processed through a front-end program designed with React and other front-end technologies to show markers on the buildings with the assigned courses with finals.

Challenges we ran into

We were new to web scraping, so scraping for the course data and seating availability posed as a hindrance to overcome. Precisely and accurately implementing a scheduling algorithm that used all the necessary and proper data structures was a great hurdle.

Accomplishments that we're proud of

  • Web scraping with Python
  • Popular scheduling algorithms
  • Front-end API calls

What we learned

  • Web scraping with Python
  • Popular scheduling algorithms
  • Front-end API calls

What's next for ScheduleFlow

The scheduling algorithm can be optimized, and other edge cases can be handled.

Share this project:

Updates