About the Project

The KLR Music Recommender is a website that allows users to browse a database of a few thousand songs, rate them as they please and, as the name suggests, get songs recommended to them. This project was an experiment in gathering data to analyze users and give them competent suggestions. Our team created this system using Ruby on Rails and MySQL, with a Perl script to extract song information from our mp3's ID3 tags. What we do to compare user's tastes was take a set of songs that a given user has rated, then compare them to each other user's ratings for those same songs. We give positive ratings a 1, negative ratings a -1, and if the second user hasn't rated a song, we use a 0. From there we calculate the Euclidean distance between lines consisting of each set of ratings. You can find a better rundown with visual aids here.

About the Inspiration

The idea began with an article in Wired that detailed Netflix's search for the next great recommendation algorithm. With my teammates and me having read it, we began to wonder what we could do to give users reasonable (meaning right more often than wrong for our purposes) suggestions for new songs to listen to. Furthermore, it was an interesting way for me to fool around with Ruby on Rails, something I had been hearing a lot about.

About the Team

For this project I worked with Miguel Rodriguez and Joanne Lee. We all put our heads together during the planning phase, researching different ways to gather data and analyze it to get something we could use, then plotting it out in our documentation. When the implementation began, Joanne handled the data collection from mp3s with some awesome Perl work, Miguel designed and implemented our database in MySQL then filled it with Joanne's data, while I created the Ruby on Rails platform for it to work with. This was by far one of the most efficient work flows I've been in- everyone always had things to work on and was unhindered by bottlenecks. Great work guys!

Screenshots

Similar user ranking
Song recommendations
User info page, public
Editing profile
Song-specific page
Deleting an account
Guest rating songs
Searching

Concept