Git Product home page Git Product logo

social-music's Introduction

MusicBuddy Capstone - Project Spec

Table of Contents

  1. Overview
  2. Product Spec

Overview

Description

MusicBuddy is a social music app that allows users to network with others and explore new music. Users can listen to music through the app and discover new artists (generated based on the users' top artists' related artists). Users can view their top 20 songs and artists on their profile and refresh this data. There is a live forum where users can meet new people and discuss their favorite music and get new music suggestions. Users can also see how compatible their music taste is with other users by seeing their percentage match compatibility and view other users' top 20 songs and artists.

App Evaluation

  • Category: Social Networking / Music
  • Mobile: This app would be primarily developed for mobile.
  • Story: The app analyzes users' music taste, and connects them to other users with similar choices. Users can see how compatible their music taste is with other users.
  • Market: Anyone could use this app.
  • Habit: This app could be used as often as the user wanted depending on how what they're looking for (song recommendations, new friends, etc.).
  • Scope: First, we would start with displaying the user's top data. Then we would work on displaying and fetching other users' top data. Using these two sets of data, we could then generate a % match compatability.

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

  • Users can message on a live forum
  • User can see favorite artists/songs
  • Users can see other app users
  • Users can see % similarity with other users
  • Users can see other users top data

Optional Nice-to-have Stories

  • Page where user can just listen to their own music
  • Users can get artist recommendations based on their top artists
  • Persisted user can refresh their top data

2. Screen Archetypes

  • Login
  • Register - User signs up or logs into their account
  • Matches Screen - Other users displayed
  • Matches Details Screen - Percentage similarity displayed, other users' top data displayed
  • Messages Screen - Live forum for users to communicate
  • Profile Screen - User can upload a photo and see top artist/song info
  • Music Screen - User can play, pause, skip, skip to prev song

3. Navigation

Tab Navigation (Tab to Screen)

  • Profile
  • Music
  • Messages
  • Matches

Flow Navigation (Screen to Screen)

  • Forced Log-in -> Account creation if no log in is available
  • Music Selection -> Jumps to Chat
  • Profile -> Text field to be modified.
  • Settings -> Toggle settings

social-music's People

Contributors

architasingh avatar

Stargazers

 avatar

Watchers

 avatar

social-music's Issues

Stretch Features

General

  • Clean up code
  • Convert unnecessary singletons into regular classes

Profile

  • Set default image for new user
  • Refresh button
  • Alert user if they're not connected to Spotify before refreshing
  • Show "now playing"
  • Fix "now playing" label

Song:

  • Display something other than the connect to spotify button
  • Skip/skip to previous
  • Play/pause

Matches:

  • Rethink matching algorithm
  • Fix profile image issue when refreshing
  • Deselect cell after click

Discover

  • Show related artists
  • Save related artists once

Set up SDK, Parse, Spotify Log-in, Parse Log-in, and Launch Screen

SDK:

  • Set up Spotify SDK
  • Test - log in with Spotify account
  • Test - play a song on the app

Parse:

  • Set up Parse server
  • Test - add an object, make sure it appears in Back4App
  • Add Parse log-in/sign-up screen
  • Save username info to database
  • Persist Parse log-in

Launch Screen:

  • Create launch screen

Profile:

  • Log out button

Songs:

  • Make "Connect with Spotify" button disappear after Spotify authorization

UI Set Up:

  • Tab bar controller for home + profile views
  • Set app icon and tab bar icons
  • Autolayout (add stack views to home and log-in)

Profile, Song Selection, Messages

Web API:

  • Extract access token from url
  • Get user's top songs and artists

Profile:

  • User can add a profile picture from camera roll/take a photo
  • Username displayed on profile picture
  • Set up table view for viewing user's top artists/tracks
  • Move logout button to profile screen
  • Display user's top songs and artists

Messages:

  • User can post messages for other users to see
  • User can see messages from other users
  • Messages are saved to back4app
  • Move keyboard up when textfield is tapped
  • Add bubbles for chat messages
  • Add pull-to-refresh for messages
  • Add character limit for messages

Other:

  • Refactor Spotify SDK code
  • Move Spotify log-in to be after Parse log-in

Matches, Messages, Profile

Matches:

  • User can see other users on their Matches page
  • User can click on other users
  • Look into matching algorithms
    • give .25 weight to shared songs/total num of songs and .75 weight to shared artists/total num of artists (count shared songs/artists once in total)
    • add weights for top 20
    • final EQ: ((1-diff in level weights)/20) * artist/song weight
  • Calculate % similarity between users
  • User can see % of similarity with other users

Matches Details View:

  • User can see other users' favorites
  • Format other user favorites
  • Make UI look better

Messages:

  • Add timestamp to messages
  • Don't let users send empty messages
  • Implement live query
  • Fix username, timestamp, displaying most recent message at the top
  • Fix pull to refresh after sending a new chat
  • Fix retain cycle issue
  • Fix profile picture, username after send
  • Fix top constraint

Profile:

  • Format top tracks and artists
  • Store top artists and songs in database
  • Only save top artists/songs for a user once
  • Refactor fetching + saving top data
  • Show updated profile picture immediately

Finishing touches

Required:

  • Use at least one external library to add visual polish
  • At least one animation (e.g. fade in/out, e.g. animating a view growing and shrinking)
  • Tap gesture

Areas of Improvement:

Parse:

  • Make author and track local models, remove these from parse
  • Make Spotify Top Items Data (STID) parse model
  • Move data from old models to new one

Profile:

  • Show top info immediately without having to switch tabs
  • Display album and song images
  • Don't save empty favorites
  • Persisted user can see top artists and songs without authenticating through Spotify
  • Refactor api call and parse query code (incorporate STID)

Messages:

  • Fix date after send

Matches Details:

  • Refactor parse query code (incorporate STID)
  • Increase displayed percentage

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.