heleaf / moosic

0 stars 0 forks source link

moosic

Social music sharing app

Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema

Overview

Description

Social music app (playing music, playlists, finding songs) where you can see what other people are listening to live

App Evaluation

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

Optional Nice-to-have Stories

2. Screen Archetypes

3. Navigation

Tab Navigation (Tab to Screen)

Flow Navigation (Screen to Screen)

Wireframes

wireframe

Schema

Models

Status

Property Type Description
objectId String unique id for the user status (default field)
author Pointer to User status author
song Pointer to Song song that the author is currently listening to
playlist Pointer to Playlist playlist that the author is currently listening to
caption String status caption by author
commentsCount Number number of comments that has been posted to a status
likesCount Number number of likes for the status
createdAt DateTime date when status is created (default field)
updatedAt DateTime date when status is last updated (default field)

Song

Property Type Description
objectId String unique id for the song (default field)
name String name of the song
artist Pointer to User song artist
artists Array list of song artists
album Pointer to Album album that the song belongs to
timeLength Number length of song in miliseconds
playCount Number number of times the song has been played
likesCount Number number of users who have liked the song
isLikedByUser Boolean whether the song is liked by the user
isQueued Boolean whether the song is currently queued
isPlaying Boolean whether the song is currently playing
playPosition Number number of seconds that have passed in the song
tags Array relevant keywords that the song will show up for when querying
createdAt DateTime date when post is created (default field)
updatedAt DateTime date when post is last updated (default field)

Playlist

Property Type Description
objectId String unique id for the playlist (default field)
name String name of the playlist
author Pointer to User author of the playlist
caption String playlist caption by the author
songs Array list of songs in the playlist
timeLength Number length of the entire playlist in miliseconds
isLikedByUser Boolean whether the playlist is liked by the user
playCount Number number of times the song has been played
likesCount Number number of users who have liked the song
tags Array relevant keywords that the playlist will show up for when querying
createdAt DateTime date when post is created (default field)
updatedAt DateTime date when post is last updated (default field)

User

Property Type Description
objectId String unique id for the user (default field)
username String username of the user
password String password of the user
likedSongs Array list of liked songs by the user
likedPlaylists Array list of liked playlists by the user
isFollowedByUser Boolean whether the user is followed by the currentUser
tags Array relevant keywords that the user will show up for when querying
isOnline Boolean whether the user shows up on their followers' feed

Networking

Main Activity

Home Feed Screen

Search Screen

Profile Screen