Requirements

1. On-boarding

Once the user has downloaded the application, they'll now be given the option to either login (if they have an existing account) or to create a new account. The on-boarding process should be quick and efficient. It should be brief while also providing us just enough information to get the user started

1.1 Login

This will most likely be a button that's less visible than the 'Create Account' button. It's only use will be when a user logs out, switches phones or reloads the application after a deletion.

1.2 Create account

This will be the primary button that users would tap to start the on-boarding process
1.2.1 Register with social signup
The user can create an account using their Facebook or Twitter social profile. This will silently provide us their name, phone number, and profile photo.
1.2.2 Email
The user can also create an account using their E-mail address.
1.2.2.1 User info collect
User will be asked to provide their:First Name, phone number, and be asked to take or upload a profile photo.

2. Create a group

2.1 Create a group via a gesture

This choice will launch a graphic that encourages the users to create the group via a gesture (with phone in hand), i.e. tap knuckles. By getting a user to perform the gesture with the application open, our technology will recognize the other devices also doing the gesture and create a group.

2.2 Create group via contacts

There will be an alternative action that users can perform to create a group. This could be preferred for these instance: users aren't in the same vicinity, or they simply don't want to do a gesture in public. In this case we'll need to let them choose fromt heir Facebook friends or their phone contacts.
2.2.1 User notified when added via contact
The user who's addd via the contact dialog is sent a push notification letting them know they've been invited. If they don't have the application then they're sent an SMS with a link to the application in the app store. They must load the application and accept the invite.

3. Viewing group on map

3.1 Tap on a user's location marker

This brings up a user's detail profile (photo, name, distance from user viewing the profile, and option to direct message).

3.2 Add user

Once a group has been created any of the existing members can add a new user to the group. Once added all the others in the group are notified.
3.2.1 Add user via gesture
This will open a dialog that illustrates that the new user (within proximity) should open their app and do the gesture to join group.
3.2.2 Add user via contacts
This will open a dialog that lets them invite user from their Facebook friends or their phone contacts and invite a new user to the group.
3.2.2.1 User notified when added via contact
The user who's added via the contact dialog is sent a push notification letting them know they've been invited. If they don't have the application then they're sent an SMS with a link to the application in the app store. They must load the application and accept the invite.

4. Messaging within the group

4.1 Message the group

Each group has a main message window where users can post messages to each other that the entire group can see.
4.1.1 Tap on a user
This will take the view back to the map and highlight the user on the map.

4.2 Group list

Users can expand the group list and tap on a user to highlight that user on the map or tap on a message button to open direct message to that user.

5. Leaving or dissolving the group

5.1 Leave group

A user can chooose to be removed from the group.

5.2 Dissolve group

A user can choose to dissolve the group. When a user selects this then the rest of the group is sent a notification to approve. Once 50% of the group approves then the group is dissolbed. If there are only two people in a group it is automatically dissolved.