An open API service indexing awesome lists of open source software.

https://github.com/dwrob/lwtapemix

An app that provides a fun - Tinder-style - voting system for choosing what songs should be put on a spotify playlist
https://github.com/dwrob/lwtapemix

le-wagon-bootcamp rails-application spotify-api spotify-playlist

Last synced: 6 months ago
JSON representation

An app that provides a fun - Tinder-style - voting system for choosing what songs should be put on a spotify playlist

Awesome Lists containing this project

README

          

Rails app generated with [lewagon/rails-templates](https://github.com/lewagon/rails-templates), created by the [Le Wagon coding bootcamp](https://www.lewagon.com) team.


logo

# [TapeMix](http://demo.tapemix.fun)

## Make collaborative Spotify playlists with your friends easily

The objective of this final project for my Web Development bootcamp with Le Wagon was to make an app that would help a user select a range of playlists from their Spotify account and allow their friends to vote yes or no to any of the songs.

## Use case
All parties need music. All parties need someone to control the music. Often the people controlling the music have to deal with other people requesting songs. The spotify queue is also something that, if someone clumsy comes along, the queue can be obliterated by a careless swipe.

The aim of TapeMix is that the user, who controls the music, can select one or more of their playlists - say, "2010' alterantive pop" and "Indie rock classics from 2011" - and combine them into one playlist. They can then send this combined playlist to everyone at the party, allowing to vote 'yes' or 'no' on the song (see fig-1 below). Any song with less than 0 votes will not make the mix.

## Objectives of the project

To consider designing any kind of music playlist app without integrating the main music streaming services would be foolish endeavour. After researching Spotify's documentation about their API and the endpoints available, I felt it would be possible to utilise the API in order to build this app.

I initially planned to use an existing gem "rspotify" to handle the OAuth procedure and subsequent calls. However, I eventually decided that it was possible and more beneficial to my learning that I establish authorization with only the use of the 'rest-client' gem.

### User Flow outline

|Sign up|Authorization|View your Spotify playlists|
|---|---|---|
|make an account and authorize with spotify|user gives TapeMix authorization to view and change their playlists|user screen for their spotify playlists|
|Sign-in via Devise. |Spotify auth screen explaining TapeMix scopes | Spotify playlists displayed. User can select one, two or more, to combine and send to their friends/voters.

|Make a selection|Keep up to date with voting|Playlist in Spotify|
|---|---|---|
|Voters can access the screen without logging in and vote quickly and easily|the user can observe the progress of voting through an Js AJAX logic using JSON response|After confirming the tape, the new playlist is made in Spotify ready to play|
|fig - 1: Voters can vote on the songs via a Tinder-style interface|User can observe progress of the voting; and can confirm anytime they want|After confirmation, the tape is immediately sent to Spotify as a playlist, ready to play|