Skip to content

codepath/me102_group_project_example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

EXAMPLE GROUP PROJECT README

TUNIN

Table of Contents

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

Overview

Description

Tracks what music an individual listens to, and pairs them with others based on that music. Could be potentially used as a dating app, or just meeting new friends with similar music tastes.

App Evaluation

  • Category: Social Networking / Music
  • Mobile: This app would be primarily developed for mobile but would perhaps be just as viable on a computer, such as tinder or other similar apps. Functionality wouldn't be limited to mobile devices, however mobile version could potentially have more features.
  • Story: Analyzes users music choices, and connects them to other users with similar choices. The user can then decide to message this person and befriend them if wanted.
  • Market: Any individual could choose to use this app, and to keep it a safe environment, people would be organized into age groups.
  • Habit: This app could be used as often or unoften as the user wanted depending on how deep their social life is, and what exactly they're looking for.
  • Scope: First we would start with pairing people based on music taste, then perhaps this could evolve into a music sharing application as well to broaden its usage. Large potential for use with spotify, apple music, or other music streaming applications.

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

  • User logs in to access previous chats and preference settings
  • User picks what their favorite artist/genre/etc. (Think Spotify interface)
  • Matches have a chat window to get to know each other, with the ability to skip music and unmatch (Tinder Style).
  • Profile pages for each user
  • Settings (Accesibility, Notification, General, etc.)

Optional Nice-to-have Stories

  • Log of past songs/people with album art covers matching
  • Page of most played songs (i.e. songs that most users are connecting through)
  • Profile Add-On: Top music choices, etc.
  • Optional Shuffle Button (i.e. random encounter/random song)
  • Listening/Encounter Queue

2. Screen Archetypes

  • Login
  • Register - User signs up or logs into their account
    • Upon Download/Reopening of the application, the user is prompted to log in to gain access to their profile information to be properly matched with another person.
    • ...
  • Messaging Screen - Chat for users to communicate (direct 1-on-1)
    • Upon selecting music choice users matched and message screen opens
  • Profile Screen
    • Allows user to upload a photo and fill in information that is interesting to them and others
  • Song Selection Screen.
    • Allows user to be able to choose their desired song, artist, genre of preference and begin listening and interacting with others.
  • Settings Screen
    • Lets people change language, and app notification settings.

3. Navigation

Tab Navigation (Tab to Screen)

  • Music selection
  • Profile
  • Settings

Optional:

  • Music/Encounter Queue
  • Discover (Top Choices)

Flow Navigation (Screen to Screen)

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

Wireframes


[BONUS] Digital Wireframes & Mockups

[BONUS] Interactive Prototype

Schema

Models

Post

Property Type Description
objectId String unique id for the user post (default field)
author Pointer to User image author
image File image that user posts
caption String image caption by author
commentsCount Number number of comments that has been posted to an image
likesCount Number number of likes for the post
createdAt DateTime date when post is created (default field)
updatedAt DateTime date when post is last updated (default field)

Networking

List of network requests by screen

  • Home Feed Screen
    • (Read/GET) Query all posts where user is author
      let query = PFQuery(className:"Post")
      query.whereKey("author", equalTo: currentUser)
      query.order(byDescending: "createdAt")
      query.findObjectsInBackground { (posts: [PFObject]?, error: Error?) in
         if let error = error { 
            print(error.localizedDescription)
         } else if let posts = posts {
            print("Successfully retrieved \(posts.count) posts.")
        // TODO: Do something with posts...
         }
      }
    • (Create/POST) Create a new like on a post
    • (Delete) Delete existing like
    • (Create/POST) Create a new comment on a post
    • (Delete) Delete existing comment
  • Create Post Screen
    • (Create/POST) Create a new post object
  • Profile Screen
    • (Read/GET) Query logged in user object
    • (Update/PUT) Update user profile image

[OPTIONAL:] Existing API Endpoints

An API Of Ice And Fire
  • Base URL - http://www.anapioficeandfire.com/api

    HTTP Verb Endpoint Description
    GET /characters get all characters
    GET /characters/?name=name return specific character by name
    GET /houses get all houses
    GET /houses/?name=name return specific house by name
Game of Thrones API
  • Base URL - https://api.got.show/api

    HTTP Verb Endpoint Description
    GET /cities gets all cities
    GET /cities/byId/:id gets specific city by :id
    GET /continents gets all continents
    GET /continents/byId/:id gets specific continent by :id
    GET /regions gets all regions
    GET /regions/byId/:id gets specific region by :id
    GET /characters/paths/:name gets a character's path with a given name

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published