chelseajoe / Fetch

0 stars 0 forks source link

Fetch: Tinder for Dogs

Table of Contents

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

Overview

Description

Users create a profile for their dog in order to match with like-minded dogs for play dates and meet ups. Matches are based on swipes of other profiles.

App Evaluation

[Evaluation of your app across the following attributes]

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

Image

[BONUS] Interactive Prototype - ???

Schema

Models

  1. User (Dog)

    struct User: ParseUser {
    // These are required by `ParseObject`.
    var objectId: String?
    var createdAt: Date?
    var updatedAt: Date?
    var ACL: ParseACL?
    var originalData: Data?
    
    // These are required by `ParseUser`.
    var username: String?
    var email: String?
    var emailVerified: Bool?
    var password: String?
    var authData: [String: [String: String]?]?
    
    // Custom Properties for Fetch
    // -- Dog traits --
    var name: String?
    var breed: String?
    var age: Int?
    var bio: String?
    var preferences: [String]?
    var images: [ParseFile]?
    
    // User metadata
    var location: ParseGeoPoint?
    var recentlyActive: Bool?
    
    // Cross-user data
    // Strings represent usernames
    var dislikedUsers: [String]?
    var likedUsers: [String]?
    var matchedUsers: [String]?
    }
  2. ChatRoom + ChatMessage

    
    struct ChatRoom: ParseObject {
    // These are required by `ParseObject`.
    var objectId: String?
    var createdAt: Date?
    var updatedAt: Date?
    var ACL: ParseACL?
    var originalData: Data?
    
    // Chat room properties
    var messages: [ChatMessage]?
    var users: [String]?
    var lastUpdated: Date?
    }

struct ChatMessage: ParseObject { // These are required by ParseObject. var objectId: String? var createdAt: Date? var updatedAt: Date? var ACL: ParseACL? var originalData: Data?

// Chat message properties
var user: String?
var message: String?

}



### Networking
- [Add list of network requests by screen ]
- [POST] Login, [GET] Logout, [POST] Register
- [GET] Get all profiles, [POST] Record swipe left/right
- [GET] Get list of chats, [GET] Message History, [POST] Send message, [DELETE] Delete chat
- [GET] Get Individual Profile, [PUT] Update Profile

- [Create basic snippets for each Parse network request]
- [OPTIONAL: List endpoints if using existing API such as Yelp]

### Updates:
- Chelsea Joe - Created branch for profile, and added text from Parse backend 
- Chelsea Joe - Updated editing photos functionality to upload images
- Melissa Saechao - Finished Login & Signup features
- Anh Vu - Finished Chat features
- Anh Vu - Merged all current branches into main