Inspiration
The aspiration to help other students that are in need of external aid for with their course through a free and easy to use way. Also, we just wanted a way to get higher GPAs without going to classes, as most of the members in this team learn most of the stuff we know by watching videos.
What it does
It compiles a playlist of YouTube videos related to a topic for a University of Calgary course that the user will search in the search bar. It will display it in an easy to look at format separated by topics.
How I built it
We discussed what kind of tools we will use for this project and assigned tasked based on skillset and willingness to learn. After, we used the whiteboard to design how each component of our system will talk to each other and what kind of messages they'll need. We decided to use tools that we barely use or have not used at all as we wanted this to be a great learning experience. The first major part of this project was building a parser for course descriptions. This proved to be difficult as there many factors that make a word/phrase a key in the course description. To solve this problem, two of our members used some heuristics and other methods of separating and identifying keywords/phrases. Another major task in this project was to build an API interface that searches for YouTube videos based on keywords/phrases we found. We also had to decide on what is a good video based on what the YouTube API gave us. We looked at a videos like to dislike ratio and views. Lastly, we made a backend to handle all client requests by using the parser, YouTube API interface, and store it out No-SQL Firestores database. For ease of use, we also designed a simple frontend that displays all the videos in a non-intimidating way so that users are not afraid to start learning.
Challenges I ran into
The first problem we ran into was the parsing of the course descriptions for keywords and phrases. This is difficult due to the fact that there are so many factors to look at to decide if a phrase or word is a relevant topic in the course. Also, it is hard to decide is a word is a key or a combination of words is a key. Another challenge we ran into was building the backend. This proved to be difficult because we had very little experience with full-stack development and we also used a database model that we have not used, which made querying a lot more difficult.
Accomplishments that I'm proud of
The biggest accomplishment that we are proud of is that we actually finished a product worth showing people despite the fact that we had to learn almost every tool we used.
What I learned
- How to build a simple backend server using Flask.
- Querying and designing No-SQL databases like Firestore
- Designing proper messages for our systems to communicate with each other
- Debugging and reviewing other people's code
What's next for YouTube Playlist Course Compiler
The next thing for this project is to design an ML model that can parse keywords and phrases and enhance the heuristics used to extract keywords. This way we can improve what we search on YouTube. Also, we want to gather other learning resources such as papers, previous assignments, etc... We also want to improve how to decide what makes a good video, through user comments and suggestions, and better heuristics during the YouTube API call.

Log in or sign up for Devpost to join the conversation.