Team Members and Andrew IDs

Rajeev Godse - rgodse, Mihir Dhamankar - mdhamank

Inspiration

We were thinking about some of the issues that bother us, and we found that disputes over the aux cable (who gets to play music in a group setting) were a frequent source of tension. We realized that disputes over what music gets played can be reduced to a problem of voting or dividing resources. Then, equipped with knowledge of algorithms that computationally ensure fairness in such scenarios, we set out to hack our way to equitable aux cables.

What it does

The app allows users to form rooms and submit playlists from Spotify that reflect their preferences for what music they would like to play. It then either requires the users to vote on the artists who they find acceptable, or infers this information from the songs they selected, depending on the game mode. Finally, it creates a playlist after applying one of several algorithms from fair division: Approval Based Allotment, Utilitarian Resource Division, Egalitarian Resource Division, and Random Serial Dictatorship (which is fairer than it sounds :D).

How we built it

The project was built using the MERN stack (MongoDB, Express, React [Native], and Node.js).

Challenges we ran into

The most challenging part of the whole project was communicating with the Spotify API. They have a very finicky system for generating access tokens, and then finding the data that we actually want form the mess of data that they send back was difficult. In the end, all the data we were able to receive was really convenient, but parsing it was still difficult.

Accomplishments that we're proud of

We implemented some of the hottest new fair division algorithm (from papers written in the last 10 years) in JavaScript. We built a functional app in under 24 hours. We failed fast and learned a lot.

What we learned

We learned a lot about mobile development, databases, and how the internet works. We also learned that most code on the internet has bugs, and ran into a fair number of them.

What's next for FairJams

Cleaning it up, adding more algorithms to see what works best. I think as a group we definitely plan to use it for our personal music disputes.

Built With

Share this project:

Updates