JavaTeamUp / MessageApp

Teamup is a messaging app where users can send group or private messages from their device. Users can chat with other users and share images. It’s a simple, quickly and easy way to keep in touch with co-workers or friends and family.
0 stars 1 forks source link

Unit 8: Group Milestone - README

TEAMUP

Table of Contents

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

Overview

Description

Teamup is a messaging app where users can send friends private messages from their device. Users can chat with users and share images. It’s a simple, quick and easy way to keep in touch with co-workers, friends and family.

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

[Add picture of your hand sketched wireframes in this section]

[BONUS] Digital Wireframes & Mockups

https://github.com/JavaTeamUp/MessageApp/blob/master/Digital-Wireframe_Mockups.JPG

[BONUS] Interactive Prototype

https://github.com/JavaTeamUp/MessageApp/blob/master/teamup.gif

Schema

Model: User

Property Type Description

objectId String unique id for the user post (default field)

emailVerified Boolean verify user has a email address

ACL ACL

createdAt Date Date/Time user was created

updatedAt Date Date/Time user was updated

authData Object

username String unique username for each user

password String user's password

email String user's email address

fname String user's first name

lname String user's last name

profileImage File user's profile image

friendId Pointer user friends

Model: Friends

Property Type Description

objectId String unique id for the user post (default field)

updatedAt Date Date/Time user was updated

createdAt Date Date/Time user was created ACL ACL

FirstName String Friend's First Name

LastName String Friend's Last Name

profileImage Pointer user's profile image friendId Pointer user friends

Model: Group

Property Type Description

objectId String unique id for the user post (default field)

updatedAt Date Date/Time user was updated

createdAt Date Date/Time user was created

ACL ACL

groupName String Group's Name

userId String unique id for the user post (default field)

Model: Message

Property Type Description

objectId String unique id for the user post (default field)

updatedAt Date Date/Time user was updated

createdAt Date Date/Time user was created

ACL ACL

body String user chat conversation

userId String unique id for the user post (default field)

image File user file/image uploaded with message

Networking

Profile Screen
(Read/GET) Query logged in user object

(Update/PUT) Update user profile

(Delete) Delete Account

"// (Read/GET) Query all posts where user is user let query = PFQuery(className:""User"") query.whereKey(""userId"", equalTo: currentUser) query.order(byDescending: ""createdAt"") query.findObjectsInBackground { (message: [PFObject]?, error: Error?) in if let error = error { print(error.localizedDescription) } else if let message = message { print(""Successfully retrieved (message.count) message."") // TODO: Do something with messages... } }"

Group Screen

(Read/GET) Query all groups

(Delete) Delete group

"// (Read/GET) Query all groups where user is user let query = PFQuery(className:""Group"") query.whereKey(""userId"", equalTo: currentUser) query.order(byDescending: ""createdAt"") query.findObjectsInBackground { (posts: [PFObject]?, error: Error?) in if let error = error { print(error.localizedDescription) } else if let groups = groups { print(""Successfully retrieved groups (groups.count) groups."") // TODO: Do something with groups... } }"