Inspiration

As undergraduate students, the inevitable question occurs every semester during our time at University: "What courses am I going to take?" This question is easily answered when a student has defined learning goals, but we found for many of our peers, students do not have a clear learning goal. As a result, it is awkward for these students to search for courses by sifting through prerequisites. We wanted to address this shortfall by providing a platform that allows students to visually explore courses based on what they have already taken, giving them the opportunity to plan out their courses paths based on the courses they would like to take in the future.

What it does

Our web application for now, is a simple platform for searching courses, visualising course prerequisites and generating an undergraduate course schedule. The user can apply filters based on course difficulty, usefulness, and enjoyment, allowing the user to customize their course pathways based on their personal priorities.

How we built it

We used React and decided to try out Microsoft's Fabric UI library for the new design framework. To collect data on the various courses, we made a python web scraper to collect data from Waterloo's course website.

Challenges we ran into

We used an extremely simple tree generating library, and discovered as a result the limitations of React's rendering limitations which affected our application's ability to render collapsed trees. We also did not anticipate just how wide prerequisite trees would expand (the tree's width would easily span twice the page width).

Accomplishments that we are proud of

Our team focused very much on the visual design for this project as we were least experienced in that area. We are very proud that our application turned out to look prettier than we initially expected and are very glad to have taken a dive into visual design. We are also very proud of the efficient way we worked together as team to complete the project - with only 3 team members we are extremely proud of the amount of content we were able to incorporate in our project within 24 hours.

What we learned

We learned a TON of CSS and more about javascript objects and nested javascript tree structures. We learned about lots of new libraries, like React, bootstrap, and Microsoft UI. We also learned the hard way how React handles deep reactivity and copying!

What's next for CourseTree

We want to implement a sophisticated course planner and continuing enhancing the course exploration aspect of our platform. Since our application is theoretically school independent, the hope is that we can launch our application, expand our databases and provide a nice course platform for any student around the world! We'd love to explore future possiblities in filtering courses, and creating our system of collecting data on user course experiences.

Built With

Share this project:

Updates