Synesthesia
RedBirdHacks-2016
=================
Inspiration
One of our group’s main goals at RedBirdHacks was to gain experience in web development. Only one of us had experience with Javascript, and we were all motivated to learn JS. The reason we are so excited about this platform is its quick ability to get things running and the wide community support. Clarifai was another inspiration - we’ve had a lot of fun using that API in the past. We hoped to use a few other APIs, including Facebook (photo), jQuery(front-end web), and a music API (8tracks, Spotify, and Soundcloud were contenders).
What it does
Synesthesia can take images directly from the user’s device, or assemble a set of images using Facebook’s photo API. Then, Synesthesia passes the images to the Clarifai API which returns a set of 20 tags. These tags represent items that Clarifai finds in the image, as well as an integer that represents the probability (confidence) that each object is really in the image. An algorithm decides which tags will best generate a playlist. This information is used to find a music playlist using the 8Tracks API. Finally, we updated our website with jQuery to display the new playlist.
How I built it
We created up webpage that allows the user to upload the images directly from their device or sign in with facebook to add pictures. We used javaScript to send these images to Clarifai to process and return keywords. We then took the keywords to 8Tracks to generate a playlist. We then updated the website with jQuery to display the new playlist.
Challenges I ran into
It was challenging to get everyone up to speed on web development! Most of us didn’t have a great understanding of front end engines, so we spent a long time learning JS and figuring out which platform to use. Another challenge was finding an API that would support playlist search. Many of the larger music (Spotify, etc) didn’t have support for the functionality we desired. We also had trouble with translating the keywords from Clarifai into a playlist and had difficulty getting a solutions that works well with the rest of our APIs.
Accomplishments that I'm proud of
Everyone in the group was able to learn a substantial amount about web development. This was exciting, because this was one of our main goals. It was fun to see progress in the form of a collaborative project. It was also cool to hack together 3 APIs into a single webapp. Finally, our logo is just so wavy.
What I learned
Web. Development. We learned so much stuff, even Node.JS (!!) that we didn’t end up using. Some of us really went 0-100 real quick.
What's next for Synesthesia
We’re going to continue adding functionality in our spare time. This includes: Sharing playlist on Facebook Adding Firebase support/authentication, and saving multiple playlists Adding more methods to discover music (i.e. some sort of photo functionality with friends)
Setup
Set up a virtual Python environment for this project.
virtualenv venv
source venv/bin/activate
Then install all the Python dependencies.
pip install -r requirements.txt
Now you're ready to start the web server.
gunicorn -c gunicorn_config.py main:app
The server will start at http://localhost:8000/.

Log in or sign up for Devpost to join the conversation.