OurSound is intended to be the definitive answer to the question: "What should we listen to?" It allows a party host or anyone with access to a Sonos Speaker to create a play queue based on the music libraries of their guests and additional mood filters set by the host. OurSound was created by myself, Allie Lam, and Katie Elliott as an entry to the Sonos Design Challenge 2018.
Choosing music for a group setting is often difficult and can result in uncomfortable situations
An app that can automatically create the best play queue for any situation
I came up with the basic idea behind OurSound during the kickoff event for the challenge. However, it wasn't love at first sight for us. We wanted to make sure that we put in the time to flush out a few ideas so that we could make an educated choice of which one to move forward on. Another notable contender was an idea to make a portable Sonos speaker with wireless charging and the ability to switch between WiFi and bluetooth. However, with some napkin math, we realized that in their current state Sonos's speakers were too power-hungry to be effectively driven from a battery/wireless charging setup. With that, we decided to move forward with OurSound.
Due to the nature of this competition, it was really only feasible to go through one iteration of implementation for our experience so we spent a significant amount of time brainstorming and making sure we had the best possible first iteration of OurSound. We did user demographic research and asked different groups what they would like to see in an app like this. The responses we received were invaluable in designing the final experience.
As I had the most software experience in the group, I was in charge of implementing the majority of the features of the API as well as the front-end mobile app. The back-end is a NodeJS/Express webserver running on a Heroku dyno. It uses MongoDB for storage of user and host information as well as information about the Host's Sonos system. The bulk of the back-end work was managing all the neccesary requests that needed to be made to both the Sonos and Spotify Web APIS and generating the play queue from the information it receives. Quite a bit of work went into developing our custom play-queue generation algorithm.
The front-end is a custom-built Flutter app that makes requests to our web API. and I even decided to try my hand at some fancy scrolling animations which I think make the final design pop.
Our desired improvements to the overall experience are neatly laid out in the video so I won't reiterate, but it is worth noting that I plan to continue to develop this project if I can get my hands on a Sonos speaker (we borrowed one for testing and sadly had to return it), so check back for updates in the future.
This was a great experience for me in true full-stack development. I was in charge of implementing every technology we chose to use in the project and I learned so much in the process.