Back to Parent

Outcome


Double s
Show Advanced Options

DJ Double S


Who is DJ Double S?

DJ Double S was born to be a music lover. He is 28 years old, native American, a professional DJ who play guitar, drums, and BBox. Highly educated with an undergrad major in Pop Music. He updates billboard top 100 every week, enjoying playing right music for people.

What can DJ Double S do?

DJ enjoy playing music for people because he believes music can bring people together no matter what they are doing. He remembers that he likes listening to music while studying but also curious about what other friends listening. So he'd like to help CMU students who use slack for team discussion to enjoy listening to the right music while studying. Without downloading the App or creating a new account, we can have a more intuitive way to have a slack bot directly play the music we want especially sharing with friends and exploring more new music.

What's DJ Double S like?

DJ Double S is fun, playful, friendly, and also tech-savvy. He's very friendly with the heart of HipHop. He enjoys giving opinions toward the music you choose, but his principle is "Please don't stop the Music!"

Gb
Show Advanced Options

How does DJ Double S work?

The idea started with personal account at full scale. Then it changed to JukeBox for collaborative enjoyment. Finally, it ended up with simplicity as you can see the evolvement attached below. Basically, DJ Double S greets you with energetic personalities, play the songs you search either by artist, album, or track. Optional Database could create playlist and save users' preference for future suggestions.

Workflow
Show Advanced Options

What can DJ Double S really help?

Features desired as below:

Matrix 1
Show Advanced Options

Features implemented as below:

- Slackbot Greeting: thoughtful reminder for user to play music within slack

- Search & Play: text search by [artists, albums, tracks] results with spotify within slack and show top 5 results and select & play

- Handle error with server - respond if the song couldn’t be accessed or played

- Handle mis-understanding - respond if the bot doesn’t understand what’s being asked

- Help - provide some help information to a user if they need guidance

Data Diagram

To create a database to store added songs to playlists and then display. Furthermore, it can store users' preference to provide future suggestions.

D2
Show Advanced Options

What are needed to build DJ Double S?

Technical Implementation

- API for Spotify: 

SpotifyWebAPI https://developer.spotify.com/web-api/user-guide/

- Gems for Spotify:

Rspotify (recently updated): https://rubygems.org/gems/rspotify/versions/1.18.0

Code Sample: https://github.com/guilhermesad/rspotify

- Make a jukebox – playlist creation  DEMO  Code Sample

- Shared Spotify playlist (JSON/JAVA) Code Sample 1 Code Sample 2

- Benchmark made a node based jukebox for slack  Concepts   Code Sample 

See How DJ Double S Works!

Show Advanced Options
Ss1
Show Advanced Options

Future Work

- @djbot:

Speak directly only functionalities would reduce irrelevant bot response when talking with other members in team. (Could be used in IF statement for beginning commands"@djbot" or find that particular function in Slack App Console)

- Playlist Database:

The information of song typed in the Slack will be stored in the database. It will let the DJ bot remember the users’ preference while studying and be able to provide suggestions lists later. (Tried but not functioning well)

- Oauth:

Spotify Oauth functions provide user account functionality. Directly use the playlist function within Spotify without creating own database to store. (Tried but stuck in the middle of process)

Interactive Buttons:

More intuitive interaction, reducing the typing actions for user. (Tried but couldn't get it move forward to the next level response or reactions.)

Reflection

0 to 1 : Code or Die - Engineering time is hard to measure. A small typo or error would make a 0 to 1 difference. Understanding the logic behind is important.

API is powerful - Every API and gem is different, choosing the right one is very important. Always think about the functionalities I want to achieve, but be more flexible of using tools or methods. 

AI rocks: The best UI is zero UI  - Might want to try database and interactive buttons those universal fundamentals function to build a bot.

Learn from those more experienced - Thanks for Daragh and all classmates helping me accomplish this fast track. Try to stay calm and time efficient in the future, and expect my learning curve would speed up.

Reference

Spotify Web API Overview: https://labs.spotify.com/2015/03/09/understandingspotifywebapi/

Spotify Bot: http://venturebeat.com/2016/07/16/watchspotifysbotleadlaysouthisvisionofamusicconcierge/

Drop files here or click to select

You can upload files of up to 20MB using this form.