Original App Design Project - README Template
===
# TeamUp App
## Table of Contents
1. [Overview](#Overview)
1. [Product Spec](#Product-Spec)
1. [Wireframes](#Wireframes)
2. [Schema](#Schema)
## Overview
### Description
This app is used to link coaches and their players. In this app you will be able to see five pages. one is your roster, this is where you can see all of your players or team members. One would be your schedule on this page you can see who you play and where you play. Another page is a chat where players and coaches can talk to each other. One is a film page where coaches share film with players. You also have a homepage on this page where you can see notifications like an update on your schedule or new film.
### App Evaluation
- **Category:** Sports, Productivity
- **Mobile:** Allows coaches to keep their teams up to date in real time.
- **Story:** This app would combine several different apps that coaches often have to use.
- **Market:** This app would be useful for athletic teams of all levels.
- **Habit:** Coaches would need to use the app whenever they had to inform their team of some type of change.
- **Scope:** It would be quite difficult to build our full idea, but even a simple version of the app would be useful to consumers.
## Product Spec
### 1. User Stories (Required and Optional)
**Required Must-have Stories**
- [ ] User signs up or logs into their account
- [ ] User can create a team
- [ ] User can update the team roster
- [ ] User can update game schedule
- [ ] User can chat with team members
- [ ] User can post game film
- [ ] User can post announcements
- [ ] ...
**Optional Nice-to-have Stories**
- [ ] Allowing the creator to take primary actions on this content such as deleting or editing**
- [ ] Add image next to user that makes an announcement
- [ ] List of who viewed the announcements
- [ ] List of who viewed the messages
- [ ] Add settings section
### 2. Screen Archetypes
* login/register
* User signs up or logs into their account
* Validation of form inputs for invalid data (i.e bad emails, duplicate emails)
* Sending requests to server to authenticate or create new user accounts
* Integrating third-party connection SDKs
* Loading states during authentication or creation**
* Action buttons that allow user to login
* Roster
* Sending network requests to retrieve lists of content data to display
* Optimizing the display of items such that scrolling the stream is smooth
* Action buttons that allow user to log out
* Schedule
* Handling cases where the user wants to view more information on a piece of content
* Optimizing the display of items such that scrolling the stream is smooth
* Action buttons that allow user to log out
* Home
* Grid or list of recent content items for user
* Sending network requests to retrieve lists of content data to display
* Endless scrolling which paginates as user consumes content
* Optimizing the display of items such that scrolling the stream is smooth
* Action buttons that allow user to log out
* Compose*** **Not sure if needed**
* Input fields of various types to collect information
* Option to capture a photo or select from photo gallery
* Action button that allow user to post
* Action button that allow user to log out
* Chat
* Endless scrolling which paginates as user consumes content
* Optimizing the display of items such that scrolling the stream is smooth
* Option to capture a photo or select from photo gallery ***?
* Action buttons that allow user to log out
* Resources
* Sending network requests to retrieve lists of content data to display
* Endless scrolling which paginates as user consumes content
* Handling cases where the user wants to view more information on a piece of content**
* Optimizing the display of items such that scrolling the stream is smooth
* Option to capture a photo or select from photo gallery
* Action buttons that allow user to log out
### 3. Navigation
**Tab Navigation** (Tab to Screen)
* Roster
* Schedule
* Home
* Chat
* Resources
**Flow Navigation** (Screen to Screen)
* Login screen
* Home
* Add players
* Login
* Compose
* Home (after announcement is posted)
## Wireframes
[Add picture of your hand sketched wireframes in this section]
<img src="YOUR_WIREFRAME_IMAGE_URL" width=600>
### [BONUS] Digital Wireframes & Mockups
### [BONUS] Interactive Prototype
## Schema
* User:
* Roster:
### Models
User:
| Property | Type | Description |
| -------- | ------ | ----------- |
| username | string | Unique id for the user|
| Password |string | Personal key to enter app|
Roster:
| Property | Type | Description |
| -------- | ---- | ----------- |
| Name | String |Player name |
| Jersey Number|Number|Player jersey number|
| Image |File |File containing player headshot|
| Description|String |Health description/personal information|
Schedule:
| Property | Type | Description |
| -------- | -------- | -------- |
|Opponent | String|Name of team that you are playing|
|Location| Address Link|Link to location in google maps|
|Date|DateTime|Date of the game|
|Time|Time|Time of the game|
|Jersey color|String|Color of jersey you are wearing|
|Description| String|Additional info about game|
Home:
| Property | Type | Description |
| -------- | ---- | ----------- |
| Author|String|Name of whoever posts the announcement|
| Title|String|Title of the announcement|
| Announcement|String|Content of the announcement|
| CreatedAt|DateTime|Date and time that announcement was created|
Chat:
| Property | Type | Description |
| -------- | ---- | ----------- |
| Author|String|Name of whoever posts in the chat|
| Post|String|Contains the message|
| CreatedAt|DateTime|Date and time of message|
Resources:
| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| Author|String|Name of coach|
| Title|String|Title of post|
| Image|File|Image file|
| Video|File|Video file|
| CreatedAt|DateTime|Time that post was made|
| post|String|Description/content of post|
### Networking
- [Add list of network requests by screen ]
- Login
- (Read/GET) Query logged in user object
- Home
- (Read/GET) Query all announcements where user is author
- Compose
- (Create/POST) Create a new announcement object
- Chat
- (Create/POST) Create a new post object
- Resources
- (Read/GET) Query all announcements where user is author
- (Create/POST) Create a new post object
- [Create basic snippets for each Parse network request]
- [OPTIONAL: List endpoints if using existing API such as Yelp]