martipal / SoundBubble

This project is implemented as part of coursework for CPSC463I at the University of British Columbia. This project is intended for users who are subscribed to the music platform Spotify. It will allow users, and other users within their “Group”, to view each other’s song logs and interact with the logs by “Up Voting” or “Down Voting” a particular log. The type of data we will be storing are Songs along with User Information. This data will be able to be shared among users to access within the group. Additional functionality that we may add/remove based on time constraints is the ability to recommend a played song to another user, and adding commenting functionality to a particular song log for users to provide their opinions (e.g. “This song is awesome!”, “This song is lame”).
0 stars 2 forks source link

SoundBubble

Group Members: Martin Palanca, Sherry Zhang, Yancey Yang

SoundBubble is a platform that leverages Spotify's public API to build logs of a user's recently played tracks and makes this data visible to other users. Users can create and join groups to refine which users' song logs appear on their feed, as well as rate songs using a 'thumbs up' and 'thumbs down' scale, and post comments to a particular song that are then visible to all group members.

Table of Contents

Project Description

This project is intended for users who are subscribed to the music platform Spotify. It will allow users, and other users within their “Group”, to view each other’s song logs and interact with the logs by “Up Voting” or “Down Voting” a particular log. The type of data we will be storing are Songs along with User Information. This data will be able to be shared among users to access within the group. Additional functionality that we may add/remove based on time constraints is the ability to recommend a played song to another user, and adding commenting functionality to a particular song log for users to provide their opinions (e.g. “This song is awesome!”, “This song is lame”).

Project Proposal

Project Task Requirements

Minimal Requirement

  1. Retrieve a user’s recently played song log
  2. Create a user interface for interacting with Spotify song logs
  3. The ability to “Up Vote” and “Down Vote” a particular song log
  4. The ability to add users to a private group
  5. User log in capabilities

Standard Requirements

  1. Be able to hide or show the current user’s song logs
  2. Album cover appears as an icon for the song log
  3. If song logs are large, paginate the song log
  4. Create a clickable link on a song log to redirect the user to the spotify song page

Stretch Requirements

  1. Adding song log commenting functionality
  2. Adding the ability for a user to recommend a played song to another user

Breakdown of Minimal Requirements

Retrieve a user’s recently played song log

  1. Complete a technical analysis of Spotify’s public API to determine available functionality and limitations
  2. Implement retrieval of a user’s recently played songs using the public Spotify API
  3. Store song logs
  4. Parse song data into a Song object to retrieve relevant data (e.g. song name, artist, timestamp, hyperlink, etc)

Create a user interface

  1. Create a main/home page with navigation to other pages (about, song logs, group, etc).
  2. Create an interactive dynamic song log dashboard that updates on refresh
  3. Implement design of the UI so that offered functionality is intuitive

Prototypes

Home This sketch offers an early view of our music dashboard and the features it is intended to have. They include:

Groups Functionalities on this page:

MongoDB Schema

MongoDB Schema

Project Addendum

Basic Technology Requirements

Basic Contribution Requirements

Basic Functionality Requirements

SoundBubble presents a streamlined and simple mechanism to share music with others based on songs played on the music application, Spotify. Currently, sharing played songs on Spotify is done on a per-song basis and involves sharing individual Spotify song links via third-party social media applications, such as Facebook and Instagram. Due to this, getting a grasp of others’ music listening preferences by sharing music can be tedious and challenging. SoundBubble solves this problem by presenting a central “feed” where you can view your recently played tracks, as well as those of your friends. SoundBubble users can also interact with played song logs by “rating” songs on a “thumbs up”/”thumbs down” scale, as well as leaving comments on users’ played songs. This enables the transition of the private music-listening experience into a more communal and collective one and allows users to discover new music based on the listening patterns of those around them.

Challenges, Learning, and Future Directions

Challenges and Learning

Future Directions

Though the current state of our application is complete and ready-to-use, additional functionality could be implemented to expand on our current base functionality. For example, if time permitted, we would have liked to implement the ability for users to directly recommend songs to other users, as well as also enabling other users to directly message another user. Additionally, the Groups functionality could be refined to “invite” other users to the group, from which the user can “accept” or “decline”; the current state of our application automatically adds users to the group if they are added by another user. These refinements are minor given the current scope of our application, but would begin the evolution of our application into a complete social media platform which is centered around music.

Initiative and Additional Contributions