As we are all first year college students, we shared similar experiences with the overwhelming and confusing nature of selecting college courses. For many of us, the process involved spending hours at the computer lost as to which college website or forum to go and trust. This process can be especially daunting for students from underrepresented groups, who may not have the resources or experiences to tackle this challenge. This can leave students anxious and disorganized, a recipe for disaster in college. Thus, we came up with the idea to make a program that significantly aids the user in optimal course selection, while still allowing the user to be completely free in their scheduling choices.

What it does

The Turtle House Planner is a 4 year college class planner and web scraper. Currently, the planner is capable of consolidating all UCLA classes together into a singular application screen. Here, users can browse different classes, see major requirements, and plan their schedule in an interactive 4 year calendar. We have also designed a class algorithm designed to help students fulfill their major requirements, fulfill prerequisites for interesting courses in the future, and maintain a balanced and efficient schedule through their college life.

How we built it

The Turtle House Planner began as a web scraper built in Python through BeautifulSoup4 and Jupyter. Through a series of string manipulation and pattern matching, we were able to identify key words including the name, unit, description, and prerequisites of a course. This information was stored in a SQLite3 database through Python. We then designed a client through PyQT5. Our client makes liberal use of drag-and-droppable GroupBoxes which acted as smooth and movable containers for different widgets. During this time, we also developed an algorithm to recommend classes based on the user's needs. This algorithm takes into account a series of different features including the number of prerequisites a class fulfills, its estimated workload, its required prerequisite classes, and more by assigning a weight to each class that can be dynamically allocated as the user plans and completes classes. These features were developed using Pandas and SQL to take advantage of the fast and efficient vectorized functions the library has to offer.

Challenges we ran into

For some of the members of our team, this was their first time ever coding! This was both exciting and extremely nerve wracking as many of our members were learning coding while studying different packages and libraries. As we worked, we also found ourselves getting overly ambitious and spending too much time experimenting with web application libraries including Flask. While extremely fun and interesting, we were not experienced enough in HTML/CSS/web development to fully take advantage of the technology. This ended up using much of our development time before we switched to PyQT5.

Accomplishments that we're proud of

Not only did we manage to come through with a finished product, but we also learned along the way. As mentioned before, we attempted to integrate the use of Flask, HTML/CSS/web development in our project, but changed our plan after finding it too broad and expansive to learn in a day. Even after this challenge, we managed to come out with a finished product catered to the needs of the user. While we focused on the math major for this particular project, we made sure the algorithm, given a few changes, would be able to fully function for every major to increase the amount of students assisted by our project.

What we learned

During this hackathon, we were all able to learn something that we had little to no experience in. Whether it learning python with no prior experience, some of python's graphical and database extensions, or even the nuances of setting up an SQL, this programming session proved to be a significant, but very fun, challenge for all of us. While learning about technology never disappoints, we also found ourselves with a stronger understanding of the LGBTQIA+ community and the wonders and struggles the community has faced. From the different speakers to interacting with other hackers, we have left QWER hacks as better allies, excited to continue learning and supporting the community more through technology and beyond.

What's next for Turtle Planner

The next step for the Turtle House Planner is to implement full support for every major from UCLA. This may be a challenge, as some majors are unique in terms of scheduling, so much research would be needed to create a full implementation. Another cool feature we were planning on adding during our brainstorming session is to create an algorithm to provide every class with a few external learning sources (Like Khan-Academy Links or other online Websites). While we did not get there in time, we believe learning site integration would truly set the Turtle House Planner apart! We are also hoping to integrate BruinWalk ratings into our algorithm to help differentiate between similar classes.

Built With

Share this project: