We were inspired by the desire to stay productive and help others stay productive during the COVID-19 pandemic, wherein online education has become commonplace. We believe that the pandemic has catalyzed a major shift in the way we teach ourselves and that the repercussions of this will be felt for generations to come. As a result, we wanted to help fellow students and life-long learners in the new learning process.
What it does
navicourse asks users to select their interests and then gives them AI-driven course suggestions accordingly. As students engage with each of our suggestions, we get to know their preferences better and use this information to improve future course recommendations. Users login with their Facebook account to save their preferences and suggestions for next time.
How we built it
We built navicourse using the Flask web development framework in conjunction with Bootstrap/HTML/CSS for the frontend and leveraged CockroachDB to store our database of courses and users. Course information was scraped from several online learning sites, such as Edx/Coursera/Udacity using the Python scrapy library. SK-Learn was used to develop a Term Frequency - Inverse Document Frequency (TF-IDF) algorithm that compares course descriptions to match the user with courses with a similar description to their interests.
Challenges we ran into
Finding an adequate dataset and data engineering took us a while. Integrating the many components of the project together was also difficult.
Accomplishments that we are proud of
We developed our skills in Python and web development and made our first ever recommendation system.
What I learned
We learned how to divide up the work for a project adequately between different experts (front end vs. machine learning/database vs. back end). We also learned how to use the Facebook API for user logins.
What's next for navicourse
By increasing the amount of data available for the machine learning algorithm with the help of various APIs, we hope that we will be able to provide more precise recommendations. We will also improve on the UI of the website, where we have great expectations for the end result.