Inspiration
We observe the need for new social interaction on learning community since the onset of COVID. Together with inspiration from Glimpse and DukeList, we create this platform in a hope to create a tight knitted community at Duke (and other universities in the future) through offering tutoring matching and study group recommendation on our platform.
What it does
It has two main parts. The first part is a Study Together matching platform, where a **ML algorithm trained using neural network"" helps recommend the top five matched study rooms, taking into consideration of students' major, hometown, interests, ratings given by students after study room experience and etc.
The second part is a tutoring matching platform. This helps Duke students find peer tutors who are familiar with the structure of the class. Moreover, with the listing of tutoring fees, we make the market more transparent.
How I built it
With any Machine Learning project, the data must be collected somehow. In order to have the most accurate options at Duke for a study together platform, we web-scraped the current clubs and courses at Duke. With all of the courses and clubs in .csv files, the website allows users to select their courses and clubs, which the ML algorithm uses (among other things) to match them with others. In addition, we invoked the GoogleMap API to calculate distance between two users’ hometowns.
We used Ruby on Rails (with HTML/CSS) for the web app portion of our project. The Rails framework provides a lot of helpful methods and packages for routing, views, database access, security, accounts, etc. This portion of our project is the user-facing side, where they can create their profile and manage their account.
To return robust and accurate recommendations for our users, we implement multiple ML algorithms. We decided to include most features from the users relation, which include some sentences or sentence fractions that cannot be easily evaluated. We hence introduced the BERT NLP model to obtain a distance metric between different sentences, like courses taken and major to calculate how closely two users are “matched”.
However, we are also aware that some users may prefer to meet new people, and thus we trained a PyTorch sequential neural network against the ratings by each user at the end of each meeting, so that we can further evaluate how likely a user may find a specific room to be “good”. To keep the model inference time reasonable, we also introduced a randomized algorithm to select rooms from the database so that we won’t have to run inference on all rooms, which is extremely computational expensive. This allows us to scale our project better.
Challenges I ran into
Although some people on the team had experience with Ruby on Rails, there were challenges with passing the data around the web app, and then providing that data in a format usable
Besides, we also need to figure out ways to integrate our webapp with the recommendation algorithm in Python. We experimented a long time and finally came up with a server-client model to communicate in between.
Accomplishments that I'm proud of
Even though some of team members had prior experience with Ruby on Rails, their experience is rather limited and many had little experience with building large scale projects with many models. We managed to do it by pairing teammates up, helping all get sufficiently familiar with Ruby on Rails.
We are proud that we managed to create a ML algorithm that can improve the recommendation accuracy over time, with the rating feedback provided by users helping training the model further . This ML algorithm makes use of vector distances, such as producing a numerical value to represent how close two are in terms of majors and hometown etc.
What I learned
We have a better understanding of technologies like Ruby on Rails as well as of how to use neural networks to help model more abstract concepts.
What's next for Edu Up
- As a next step, we first hope to incorporate our ML recommendation algorithm into our tutoring matching platform.
- We wish to incorporate shib authentication to create a safer learning environment exclusive for Duke students.
- We can easily expand our reach to other universities after having done the pilot test at Duke.
Log in or sign up for Devpost to join the conversation.