Inspiration
UC Davis does not offer an online tool to check progress towards graduation. Students currently must manually sum up completed course requirements. In addition, course querying tools do not consider a student's academic profile when listing courses. We set out to build a tool that will help students search for courses and understand their progress towards graduation.
What it does
Davis Course Club simplifies course search by offering a keyword-based search tool, instead of a monolithic. After a student imports his or her transcript, we leverage the completed courses to display courses that will optimally satisfy requirements towards graduation. There is also a student profile view with progress bars representing % completion for each graduation requirement.
How I built it
Pre-HackingEDU, I scraped eight years worth of course metadata (~130,000 rows) and stored it in a PostgreSQL database on a Linode server. We used Flask for routing and wrote a lightweight query builder to interface with the database.
Challenges I ran into
Combining keyword-based queries with filters was tricky. The university also does not have a standardized format for encoding major requirements, so we had to devise a method to make a 'best guess' based on parsing requirement page contents.
Accomplishments that I'm proud of
I'm proud to have built something that will help students plan their schedule and graduate on time.
What I learned
This was my first project using PostgreSQL and Flask.
What's next for Davis Course Club
We've kept track of a number of known issues, and will be adding more complex filtering options as well as improved UI.
We are in contact with the university about acquiring grade statistics about every course taught, and can leverage this to provide students with an unbiased estimation of course difficulty.
Log in or sign up for Devpost to join the conversation.