Inspiration

Our project is inspired by a common problem we come across when we want to share music among friends. For example, several people gather at a party. And they all have songs on their own smartphones to play. However, there is only one bluetooth speaker. It is very inconvenient for people to manually connect, disconnect the bluetooth speaker, and play the songs. And our App aims to solve this inconvenience by maintaining a shared music playlist and handling the speaker.

How it works

Our App works as follows. User of the App has two options when he/she first enter the App, i.e. create a shared playlist or join one. If the user wants to create a playlist, a playlist name should be provided. If he/she wants to join a playlist, he/she needs to enter the playlist id. After the user has entered a playlist, all the songs in the playlist would be displayed on the screen. In terms of the user's operations, he can add local songs to the shared playlist, delete songs on the list, and change the order. Note the songs on the shared playlist may come from multiple smartphones maintaining the same list. So when it comes to play a song in the list, our server will first specify which smartphone the song belongs to. Then if the smartphone is connected the bluetooth, it is going to play the song. If not, the App will disconnect the bluetooth connection, and connect the smartphone, which the next song belongs to, to the bluetooth speaker.

Challenges I ran into

  1. It costs us some time to figure out how to disconnect the bluetooth connection with one smartphone and connect the speaker with a new smartphone. Because the bluetooth APIs we can find only provide a method to close the bluetooth on a device rather than disconnect it. In that case, if we want to connect this device again, we will need to manually open the bluetooth, which really makes our App un-user-friendly.

  2. When implementing the Android part, we have a hard time maintaining the shared list while playing the music.

Accomplishments that I'm proud of

  1. Get familiar with Android APIs, and how to connect to MySQL via JDBC in an Android app;
  2. How to implement a music players in Android ;
  3. Implement a robust server, which can store the shared lists information, user information and user-list relations.

What I learned

  1. Lots of APIs.
  2. Realize what we should we improve, i.e. quick learning abilities, thoughtful design abilities.
  3. It is really important to design the main structure of the App before starting coding. And every member should keep in the same page while implementing.

What's next for SmartDJ

  1. Finish remaining functionality of SmartDJ
  2. Make the App more robust.
  3. IOS edition.
Share this project:

Updates