Use+Cases

 __**Faceplace**__ Amanda Jenkins David Woodruff Valerie Igal __Table of Contents__ Main: Profile: Friends: Messages: Other: =Main:= =//__Register User__://= (Amanda Jenkins) **Synopsis:** A anonymous user creates a unique identity within the Faceplace system, to be used to identify the user and part of the social network. **Actor/User**: Anonymous user. **Preconditions:** This user is not logged in or already registered. **Sunny Day Case:** 1. From the Faceplace homepage, a "Register" button is visible. 2. The user clicks the button. 3. The user is presented with a "Registration" page and is instructed to enter their email address (re-enter for accuracy), user name and password (re-enter for accuracy). 4. The user enters their e-mail address, password, and user name, re-typing e-mail address and password a second time to ensure accuracy. (See Rainy Day #1,2,and 3). When entering text in the password field, a dummy character appears for each keystroke rather than the actual character pressed to ensure privacy. The user also provides name, gender, relationship status, and a personal bio in the designated fields. (See Rainy Day Case #4) 5. After entering the necessary information and submitting information by clicking the Register button visible on the page., the system presents a "Successful Registration" page. 
 * 1) Register User ….....................................................................................................................pg 3
 * 2) Login User .…........................................................................................................................pg 4
 * 3) Logout User…........................................................................................................................pg 5
 * 4) Request a Friend….................................................................................................................pg 6
 * 5) Accept/Reject a Friend….......................................................................................................pg 7
 * 6) View Notifications…..............................................................................................................pg 8
 * 7) View Newsfeed…...................................................................................................................pg 9
 * 1) View Profile…........................................................................................................................pg 10
 * 2) Edit Profile…..........................................................................................................................pg 11
 * 3) Set Privacy…..........................................................................................................................pg 12
 * 4) Approve a Wall Post…...........................................................................................................pg 13
 * 5) Delete a Wall post…...............................................................................................................pg 14
 * 6) Upload a Picture….................................................................................................................pg 15
 * 7) Set a Profile Picture…............................................................................................................pg 16
 * 8) View Picture Album…............................................................................................................pg 17
 * 9) View 'My' Friends List…........................................................................................................pg 18
 * 1) View a Friend's Profile….......................................................................................................pg 19
 * 2) View a Friend's List of Friends .............................................................................................pg 20
 * 3) Tag a User in a Picture….......................................................................................................pg 21
 * 4) Comment on a Friend's Wall…..............................................................................................pg 22
 * 1) Check Message(s)…...............................................................................................................pg 23
 * 2) Send a Message…...................................................................................................................pg 24
 * 3) Delete a Message…................................................................................................................pg 25
 * 1) Create an Event…..................................................................................................................pg 26
 * 2) Attend an Event…..................................................................................................................pg 27
 * 3) Search for a Group/Event/User..............................................................................................pg 28
 * 4) Create a Group…...................................................................................................................pg 29
 * 5) Join a Group….......................................................................................................................pg 30
 * 6) Leave a Group…....................................................................................................................pg 31
 * 7) View a Group….....................................................................................................................pg 32
 * 8) Like a Status….......................................................................................................................pg 33
 * 9) Like a Wall Post….................................................................................................................pg 34
 * 10) Like a Picture….....................................................................................................................pg 35
 * 11) View Who is Online…...........................................................................................................pg 36
 * 12) Block a User….......................................................................................................................pg 37

**Rainy Day Case #1:** 1.The e-mail addresses do not match, the system presents a message indicating this, and re-prompts the user to enter their information.

1. If the user does not enter their name, then the user is presented with a error message, which returns them to the registration page. =//__Login User:__//= (David Woodruff)
 * Rainy Day Case #4:**
 * Synopsis:** An anonymous user logs into Faceplace, and thus becomes a logged in user.
 * Actor/User:** Anonymous user


 * Preconditions:** User is not logged in, User has already registered an account.


 * Sunny Day Case:**
 * 1) The User clicks a clearly visible in the toolbar of the site that is clearly labeled "Login".
 * 2) The User's browser loads a login page. They are prompted to enter a user name and password, then click a submit button. (See Rainy Day #1 & #2)
 * 3) The User is redirected to the Home page. They are now logged into the webapp, so it display all of their account's information and indicates that they are logged in. Also, the login and register buttons in the toolbar are replaced with a "logout" button.


 * Rainy Day Case #1:**
 * 1) If the user name that is entered is incorrect when they submit it, the user is prompted with an error message indicating that the user either made a typo or is not registered.
 * 2) The user remains on the log in page (Return to Sunny Day Step 2), and they are presented with a clearly visible register button in case they are not actually registered 


 * Rainy Day Case #2:**
 * 1) If the password that is entered does not match the password that belongs with the user account that the Username they entered is attached to, the User is given an error message stating that the password is incorrect. They remain on the login page. (Return to Sunny Day Step 2)

= = = = = //__Logout User:__// = (Amanda Jenkins) **Synopsis:** An Faceplace user wishes to log out of Faceplace, such that their information is not made public, and they no longer a logged in user.


 * Actor/User**: Faceplace user


 * Preconditions:** The user is already logged in. 

1. The user clicks a visible "Logout" button. 2. The user is presented with a prompt verifying that they wish to log out.(See Rainy Case #1) 3. The user clicks the visible button to verify that they wish to log out. 4. The user is then presented with a screen informing them that they are logged out, and then re- prompted to log-in before continuing any further.
 * Sunny Day Case:**

1. The user does not wish to log out, thus they press the "Cancel" button, and they are redirected to their home page.
 * Rainy Day Case #1:**

= = = //__Request a Friend:__// =
 * (David Woodruff) **
 * Synopsis**: A Faceplace User requests another user to be their friend.


 * Actor/User**: Faceplace User


 * Preconditions:** User is logged in.


 * Sunny Day Case:**
 * 1)  On each user's profile there is a clearly visible button for other users to click to request that user to be their friend. When a user clicks this, they have sent a request. (See Rainy Day #1)
 * 2) The Faceplace User who is requesting the friend is notified that a friend request was sent, but they remain on the same page.
 * 3) The User awaits the other user's response. 


 * Rainy Day Case #1**:
 * 1) If the profile the User is looking at is already their friend, they will not see the friend request button.

= = = **//__Accept/Reject a Friend Request:__//** =
 * (Amanda Jenkins) **
 * Synopsis**: A Faceplace user wishes to accept or reject a friend request, where someone has requested to be the users friend.


 * Actor/User**: Faceplace User


 * Preconditions**: The Faceplace user is logged in, and has a request for friendship.

1. The user views their notifications , friend requests are indicated with a picture and a name of the person requesting friendship. 2. The user chooses the Accept or Reject button beside the Friend request. a. Upon accepting the friend request, the friend is added to the User's List of Friends. b. Upon rejecting the friend request, the rejected friend is not added to the User's List of Friends, but rather the current user is prompted if they want to block the rejected user. If they do not wish to block the user, then the rejected user is not added to any of the current user's lists. = = = //__View Notifications:__// =
 * Sunny Day Case**:
 * (Amanda Jenkins) **
 * Synopsis**: The Faceplace user has some new notifications, that have not been viewed.


 * Actor/User**: Faceplace User


 * Preconditions**: The Faceplace user is logged in and has unviewed notifications.

1. The user is aware that there are unviewed notifications, indicated by the discolored "Notifications" button, that visibly stands out on the toolbar. 2. The user clicks this button. 3. The user's browser goes to a new page displaying all the notifications 4. Each notification (viewed or unviewed) is presented with a link, such that a user can click it, and go to an indicated page, depending on the notification. a. A link associated with a wall post notification links to the User's profile, and is also presented with a accept or decline option depending on the privacy settings. b. A link associated with what another user has "liked'. c. A link associated with the event date they are attending. 5. The unviewed notifications are presented with a check-box, to allow the user to indicate whether or not the notification was read or not. . 6. The user clicks the check-box, and then the "OK" button visible at the bottom of the page. This switches the unviewed notification to viewed, and it no longer is presented with a check- box. 7. When no more notifications are left to be viewed, the button on the toolbar returns to its original color.
 * Sunny Day Case**:

1. The user does not click the check-box before clicking "OK", the notification remains unviewed, and the button on the tool bar remains discolored. = = = = = //__View New__sfeed:// =
 * Rainy Day Case #1**:
 * (Amanda Jenkins) **
 * Synopsis:** The Faceplace user wishes to view the updated statuses and postings of their friends on Faceplace, on the newsfeed.


 * Actor/User**: Faceplace User


 * Preconditions:** The user is logged in.

1. From any page on the system, there is a clearly visible button on the toolbar labeled as "Home". 2. The user clicks the button. 3. The user's browser loads the Home page where, the currently logged in users friends and their own recent activity is displayed in reverse chronological order. Each item on the newsfeed is indicated by the users name and profile picture associated with that user.
 * Sunny Day Case:**

1. The user does not have any friends or recent activity, thus the homepage is blank.
 * Rainy Day Case #1**:

__**Profile:**__ =//__**View Profile:**__//=
 *  (Val Igal)  **
 *  Synopsis  **  : A registered Faceplace user wishes to view their profile page from some other page on the website.


 *  Actor/User:  **  Faceplace User


 * <span style="font-family: Times New Roman,serif;"> Preconditions  ** <span style="font-family: Times New Roman,serif;"> : User is a registered Faceplace user and is logged into the Faceplace webapp

1.From any page on the system, a clearly visible button for "View Profile" is located on the main toolbar. 2. The user clicks the button. 3. The user's browser then loads the currently logged in user's profile page. <span style="font-family: Times New Roman,serif;"> 4.Each profile displays the users profile picture, pictures, wall posts, status, account info (personal bio, gender, relationship status, name, birthday), friends. <span style="font-family: Times New Roman,serif;">
 * <span style="font-family: Times New Roman,serif;"> Sunny Day Case:  ** <span style="font-family: Times New Roman,serif;">

//__**Edit Profile:**__//
 * (David Woodruff) **
 * Synopsis**: A Faceplace User wishes to edit their personal information om their user profile.


 * Actor/User:** Faceplace User


 * Preconditions**: User is logged in.


 * Sunny Day Case:**
 * 1) User clicks upon an "Edit Profile" button clearly visible and located in the toolbar, under their profile information on the home page. The browser presents the User with a new edit screen.
 * 2) The edit screen contains several text fields and a button at the end to submit (and save) changes to their profile information.
 * 3) The various categories that the User can edit from this page are:
 * 4) Name (first and last)
 * 5) Email
 * 6) Password
 * 7) Personal Bio (text written about the user about themself)
 * 8) Birthday
 * 9) Gender
 * 10) Relationship Status
 * 11) After the User hits the submit button, their new information will be saved and updated wherever their information is used throughout the site. They can also chose to cancel their edit, in which case no changes are saved. (See Rainy Day Case #1)
 * Rainy Day Case #1:**
 * 1) If the User attempts to submit an empty name (for both first & last name), password, or email, they should be presented with an error message and not allowed to submit blanks in these strings.

= = = //__**Set Privacy:**__// =
 * (Amanda Jenkins) **
 * Synopsis**: The user wishes to set their privacy in such a way as to either: allow other users only to see their profile picture and friends list, and all wall posts must be approved before being visible __or__ everything is visible.


 * Actor/User**: Faceplace user


 * Preconditions**: The user is logged in.

1.The user views their profile <Include View Profile> 2. There is a clearly visible check box on their profile. This check-box is presented with the label "Set profile to private." (See Rainy Day Case#1) 3. If this box is checked, the users profile is set to private such that they must approve all wall posts before they are visible to other users, and that the only picture visible to other users is their profile picture, friends list, and only wall posts that have been approved.
 * Sunny Day Case:**

1. The user does not set a preference, thus it is assumed they do not wish to have a privacy setting, therefore everything is visible to everyone. = = = //__**Approve a Wall Post on your Wall:**__// = (Amanda Jenkins)
 * Rainy Day Case #1**:
 * Synopsis:** The user has privacy setting <Include Set Privacy> such that they must approve a wallpost before it is visible on their wall.


 * Actor/User:** A Faceplace User


 * Preconditions:** The user is logged in and has a notification for a wall post and the user has their privacy setting to private.

1. <View Notifications> The user views their notifications. 2. The user clicks the wall post notification. 3. The user is presented with a message allowing them to approve or deny the wall post, by clicking clearly labeled buttons. <Rainy Day Case #1> 4. Upon approval, the wall post is posted onto their wall and is viewable to the public.
 * Sunny Day Case:**

1. The user chooses to deny the wall post, thus it is not posted to the users wall, or visible at any time.
 * Rainy Day Case #1:**

= = = //__Delete a Wall post:__// =
 * <span style="font-family: Times New Roman,serif;"> (Val Igal) **
 * <span style="font-family: Times New Roman,serif;">Synopsis **<span style="font-family: Times New Roman,serif;">: Faceplace user wishes to delete a wall post that is on their wall located on their profile.

**<span style="font-family: Times New Roman,serif;">Actor/User: **<span style="font-family: Times New Roman,serif;"> Faceplace User

**<span style="font-family: Times New Roman,serif;">Preconditions **<span style="font-family: Times New Roman,serif;">: The user is logged into the Faceplace webapp and has a wall post on their wall they wish to delete

**<span style="font-family: Times New Roman,serif;">Sunny Day Case: **<span style="font-family: Times New Roman,serif;"> <span style="font-family: Times New Roman,serif;"> 1. The user views their profile <Include View Profile>. 2. The user is on their profile page and locates the wall post they wish to delete 3. On the top corner of the wall post a button with the symbol "X" is visible. 4. The user clicks the button. 5. The system then displays a message to the user verifying their request to delete the wall post <See Rainy Day Case #1> 6. The user then clicks "yes" to confirm the action 7. The profile page no longer displays the wall post.

** <span style="font-family: Times New Roman,serif;"> Rainy Day Case:  ** <span style="font-family: Times New Roman,serif;"> 1. The user decides not to delete the wall post and clicks on "no" to cancel the deletion <See Sunny Day Case #5> = = = <span style="font-family: Times New Roman,serif;">//__ Upload a Picture: __//   =
 * (David Woodruff) **
 * Synopsis**: A Faceplace User uploads a picture to their picture album for other users to view.


 * Actor/User**: Faceplace User


 * Preconditions:** User is logged in and currently viewing their homepage.

> = = = = = <span style="font-family: Times New Roman,serif;">//__ Set a Profile Picture: __//   =
 * Sunny Day Case**:
 * 1) The User clicks on the clearly visible button on their homepage for uploading a picture.
 * 2) A new page loads, presenting the User with the upload page. It contains a button to select a picture from the User's computer and a submit button to complete the image upload.
 * 3) When the User clicks on the button to select a picture, they are presented with a window to browse through the files on their own computer.
 * 4) Once the User selects a pictures from the browse window, the upload page indicates that it is ready to upload, displaying the picture name and a clear indication that the picture is ready to upload (such as a checkmark or the like). (See Rainy Day #1)
 * 5) When the User clicks the submit button, the upload page reloads, allowing them to upload another picture if they wish (returning to step #2), and also presenting the User with a message informing them that the upload was successful. (See Rainy Day #2 & #3)
 * Rainy Day Case #1:**
 * 1) If the image file will not upload correctly (if it had a problem with the file type or size for example) User would be presented with a clear indication that the image is NOT ready to upload as well as an error message informing the User of the specific problem.
 * Rainy Day Case #2:**
 * 1) If the image does not upload properly for whatever reason, the User is given an error message informing them why their image did not upload
 * Rainy Day Case #3:**
 * 1) If this is the first image the User has ever uploaded, then they are also informed that it has been automatically set as their default profile picture. This fact should be reflected throughout the rest of the Faceplace.
 * (David Woodruff) **
 * Synopsis**: Faceplace User selects their profile picture (the picture that is used on their profile) from a group of previously uploaded pictures.
 * Actor/User**: Faceplace User


 * Preconditions:** User is logged in and viewing their home page.


 * Sunny Day Case:**
 * 1) <Include View Album> The user views their photo album. (See Rainy Day #1)
 * 2) The User can then select one picture by clicking on a clearly visible button to make this photo their profile picture and then clicking a submit button. (See Rainy Day #2)
 * 3) The browser takes the user to their home page and a message informs the User that their profile picture has been updated.
 * 4) Wherever the old profile picture was displayed before it now displays the newly selected picture.
 * Rainy Day Case #1:**
 * 1) If the User has not previously uploaded any pictures, the profile picture selecting page does not load and an error message should inform them that they have no pictures from which to choose a profile picture, and a provide a link indicating that they can upload pictures by clicking it. <Go to Upload Picture>
 * Rainy Day Case #2:**
 * 1) When the User loads this page their current profile picture is the default selection. At all times there is one picture selected (meaning the User cannot deselect all images, leaving no image selected) so they can hit the submit button without causing an error.

= = = = =<span style="border: medium none; margin-bottom: 0in; margin-top: 0in; padding: 0in; page-break-before: always;"> **//__View Picture Album:__//** = (David Woodruff)
 * Synopsis:** A Faceplace User can look through their own or another User's pictures.


 * Actor/User:** Faceplace User


 * Preconditions:** User is logged in and currently viewing a profile page.


 * Sunny Day Case**:
 * 1) On each User's profile page will be a link/button that directs the browser to the View Picture Album page. (See Rainy Day Case #1)
 * 2) When this page loads, it presents the User with all of the images of the user who's profile page the browsing User was previously viewing.
 * 3) If the User clicks on a picture, it will enlarge, giving the User a bigger view of the image.
 * 4) From the enlarged image there is a left and right arrow which, when clicked, display the next image to the left or right respectively. Each picture also displays a button under it to add a tag along with a list of all names that have been tagged for the picture thus far. <Include Tag a User** (Amanda Jenkins) ** in a Picture> (See Rainy Day Case #2)
 * 5) There is also a button to close the enlarged picture, returning the User to the normal view of the album.
 * 6) At the top of the album is a link/button to return to the profile page of the user who's photo album is currently being viewed.
 * Rainy Day Case #1:**
 * 1) If the user who's profile is being viewed has not uploaded any pictures, this button will not appear.
 * Rainy Day Case #2**:
 * 1) If the picture being viewed is the first picture (starting with the picture at the top left of the picture album page) clicking the left arrow will display the last picture (at the bottom right of the page). The reverse of this is also true, if the picture being viewed is the last picture (at the bottom right) clicking the right arrow will display the first picture (at the top left)

= = = <span style="font-family: Times New Roman,serif;">//__ View 'My' Friends List: __//   =
 * (Amanda Jenkins) **
 * Synopsis**:A Faceplace user wishes to view their list of friends.


 * Actor/User**: Faceplace user


 * Preconditions**: The user is logged in.

1. <Include View Profile> The user views their profile. 2. There is a dedicated box/table that previews random friends of the user. A preview consists of a list of names in the form of a link to the friend's profile. The box/table is presented with a clearly visible button labeled "View All".<See Rainy Day Case #1> 3. If the user clicks this button, their browser is redirected to a page that displays all their friends with a link to their profile.
 * Sunny Day Case:**

1. The user does not have any friends, therefore there is a clearly visible button that says "Find Friends", that takes them to a search page where they can enter their friends name into the text box. <Include Search for Group/Event/User>
 * Rainy Day Case #1:**

__**Friends:**__ =//__**View a Friend's Profile:**__//=
 * (Amanda Jenkins) **
 * Synopsis**: A Faceplace user wishes to view a friends profile, whether to just view their activity, post on their wall, or view their friends pictures.


 * Actor/User:** A Faceplace user.


 * Preconditions**: The user must be logged in and have friends.

1.<Include View 'my' Friends> or <Include Search For a User> 2. The user clicks on a link that is clearly linked with the friend's profile. 3. The browser redirects the user to a page that appears in the same format as their profile, but contains all the information of the friend.
 * Sunny Day Case:**

= = = //__View a Friend's List of Friends:__// =
 * (Amanda Jenkins) **
 * Synopsis:** A Faceplace user wishes to view the friends of a friend.


 * Actor/User**: Faceplace User


 * Preconditions:** The Faceplace user is logged in and has friends.

1. <Include View a Friends Profile> The user is on the designated friends profile. 2.There is a dedicated box/table that previews random friends of the user. A preview consists of a list of names in the form of a link to the friend's profile. The box/table is presented with a clearly visible button labeled "View All".<See Rainy Day Case #1> 3. If the user clicks this button, their browser is redirected to a page that displays all of their friend's friends with a link to each profile.
 * Sunny Day Case:**

1. The user does not have any friends. There will be no box/table that appears.
 * Rainy Day Case #1:**

= = = //__Tag a User in a Picture:__// = (David Woodruff)
 * Synopsis:** A Faceplace User adds a tag to a picture that labels the image as being of a specific User.


 * Actor/User:** Faceplace User


 * Preconditions:** User is logged in and currently viewing a picture album<Include View Picture Album>.


 * Sunny Day Case:**
 * 1) While viewing an enlarge picture, the User clicks on the clearly visible button for adding a tag to the picture.
 * 2) The User is presented with a field to type in a User name and click a submit or cancel button. (See Rainy Day #1)
 * 3) The User is returned to the enlarged image and the new tag is displayed below it in addition to the ones that were there before.
 * Rainy Day Case #1:**
 * 1) If the user name entered is incorrect or already tagged for this picture, the tag isn't added and the User is presented with an error message.

= __Comment on a Friend's Wall:__ = (David Woodruff)
 * Synopsis:** A Faceplace User leaves a post on a friend's wall.


 * Actor/User:** Faceplace User.


 * Preconditions:** User is logged in and currently viewing the desired friend's profile page.


 * Sunny Day Case:**
 * 1) <Include View a Friend's Profile> On every profile page is a text field with a submit button for commenting.
 * 2) After entering text in the field, the User clicks the submit button. (See Rainy Day #1)
 * 3) The entered text is then added to the currently viewed friend's profile's wall. The User that posted it is clearly shown to anyone viewing the profile to be the one that posted the comment.
 * 4) The User remains on the friend's profile page, but the text field they previously entered text into is now empty, allowing them to post another comment if they choose. They can also see the comment that they just posted at the top of their friend's wall.
 * 5) The user who's profile was commented on is sent a notification that their wall was commented on.
 * Rainy Day Case:**
 * 1) If the User tries to submit a comment without entering text, they do not create a new comment and are instead presented with an error message informing them that they have not entered a comment.

__**Messages:**__ =//__Check Message:__//=
 * (Amanda Jenkins) **
 * Synopsis**: The user wishes to check their messages to see if they have or do not have any unread messages.


 * Actor/User**: The Faceplace user


 * Preconditions**: The user is logged in.

1. The user has a clearly visible "Messages" button on their toolbar, from any page on the website. 2. The user clicks this button and the browser is redirected to a page displaying all their messages, listed from the newest to the oldest. Each message is presented by its subject and the person it is from. (Rainy Day Case #1) 3. The user may click on the subject of the message to view the whole message.
 * Sunny Day Case:**

1. There are no messages in the users inbox, there will be no messages that appear.
 * Rainy Day Case #1:**

= = = //__Send a message:__// =
 * (Amanda Jenkins) **
 * Synopsis**: A Faceplace user wishes to send a message to another Faceplace user.


 * Actor/User**: A Faceplace user


 * Preconditions**: The user is logged in.

1. The user is on the friends page in which they wish to send a message. <Include View Friends Profile> where there is a clearly labeled button labeled "Send <Name> a Message> or when viewing their messages <Include Check Messages> where there is a clearly visible button labeled "Compose Message". 2. The user clicks one of these buttons. The browser redirects to a page in which the user can compose a message. The page will have a drop down box for the user to choose a sender and text boxes to enter a subject, and a body to the message. 3. After the user types in the text fields and chooses a sender, the user clicks a clearly visible submit button at the bottom of the text field for the body. (Rainy Day case #1) 4. When the submit button is clicked, the Messages button on the receiving users toolbar changes a color notifying them that they have a new message.
 * Sunny Day Case:**

1. The user does not enter any information and an error message is presented to the user informing them that that the fields are blank. Giving them the option to "Go Back" or "Cancel" via clearly visible buttons. 2. The user clicks "Go Back" <Return to Sunny Day Case Step 3> or "Cancel" 3. Upon clicking the "Cancel" button, the page redirects to the homepage.
 * Rainy Day Case #1**:

= = = //__Delete a Message:__// =
 * (Amanda Jenkins) **
 * Synopsis**:A Faceplace user wishes to delete a message from their inbox.


 * Actor/User:** A Faceplace user


 * Preconditions**: The user is logged in and has messages in their inbox.

1. The user is viewing their messages <Include Check Messages>. 2. Each message is presented with a check box which is clearly labeled with the option to delete. 3. The user checks this check box beside the message(s) that they wish to delete, and hits the submit button clearly visible. When this button is clicked the message is deleted from the inbox in its entirety. (Rainy Day Case #1)
 * Sunny Day Case:**

1. If no message is checked, and the submit button is clicked, nothing will change.
 * Rainy Day Case #1:**

__**Other:**__ =//__Create an Event:__//= (David Woodruff)
 * Synopsis**: A Faceplace User creates an event that other users can attend.


 * Actor/User:** Faceplace User


 * Preconditions:** User is logged in and currently viewing their homepage.


 * Sunny Day Case:**
 * 1) On the home page will be a clearly visible button that directs the browser to the Create an Event page.
 * 2) When the Create an Event page loads, it will display three different things that the User needs to fill out. The first being a field for the title of the event, the second being a field for a description of the event, and the last being a field for entering a specific date.
 * 3) Once the User clicks the submit button, the event is created and the page returns to the homepage. (See Rainy Day #1)
 * 4) The event is displayed as the User's new status, allowing friends to attend the event. The User that created the event automatically has the event added to their attended events list. <See Attend an Event>
 * Rainy Day Case #1**:
 * 1) If one or more of the fields is empty, or the date entered is in the wrong format, the event isn't created and the User stays on the Create an Event page, and an error message is displayed informing the User of which fields they neglects or format error they made in the date.

= = = //__Attend an Event:__// = (David Woodruff)
 * Synopsis:** A Faceplace User chooses to attend an event.


 * Actor/User:** Faceplace User


 * Preconditions**: User is logged in.


 * Sunny Day Case**:
 * 1) Upon seeing an event, either from a friend's status or from a user's profile, they can click on the event title.
 * 2) After clicking on the title, a new page loads. This is the event page. It displays the event title, description, the date upon which it occurs, a list of all those attending, and a button to click in order to attend the event. (Rainy Day #1)
 * 3) When clicking this button, the event is added to the User's 'attended events'. It is displayed as their latest status and is displayed on their event's page.
 * 4) The User stays on the event page. They are later informed with a notification when the date for the event arrives. <See View Notifications>
 * 5) After the date for the event, the event is removed entirely (deleted from attended events and from Faceplace in general).
 * Rainy Day Case #1**:
 * 1) If the User is already attending the event, they see a button to unattend an event instead of attend. When clicked it removes the event from the User's attended events.

= = = //__Search for a Group/Event/User:__// =
 * (Amanda Jenkins) **
 * Synopsis**: The Faceplace user wishes to search for a user, group, or hobby in the system.


 * Actor/User:** Faceplace User


 * Preconditions**: The Faceplace user is logged in.

1. On any given page there is a toolbar in which there is a clearly visible search button, the user clicks the button. 2. The browser takes the user to a search page, where there is a text box with a drop down box indicating "Friend",”Event”, or "Group" followed by a submit button. 3. The user types in the name or phrase they wish to search in the text box, clicks the category indicating which category they wish to search, and then the submit button (See Rainy Day Case #1). 4. The browser brings up the search results on a new page.(See Rainy Day Case #2). Each result presented with a link to the page or profile for that particular result.
 * Sunny Day Case:**

1. If the user does not click any of the categories, the search will not work.
 * Rainy Day Case #1:**

1. If there are no matches to the search name or phrase, then an error message will be presented on the search page.
 * Rainy Day Case #2**:

= = = **//__Create a Group:__//** =
 * (David Woodruff) **
 * Synopsis**: A Faceplace User creates a new group that other users can join.


 * Actor/User:** Faceplace User


 * Preconditions**: User is logged in and currently viewing their homepage.

>
 * Sunny Day Case**:
 * 1) On each User's homepage their is a button indicating that the user can create a new group.
 * 2) Upon clicking this button, a new page is loaded that presents the User with several text fields to fill out followed by a submit button.
 * 3) The fields include group name and group description.
 * 4) After the User clicks the submit button they are presented with the group's page and given a message letting them know that they have successfully created a new group. <Include View Group> (See Rainy Day #1 & #2)
 * 5) When the User successfully creates a group, they are automatically a member of the group. It is added to their list of groups, which is visible on their profile.
 * Rainy Day Case #1:**
 * 1) If the User does not enter text into either field, when they submit they do not leave the 'create a group' page and are instead presented with an error message informing them that they must enter data into each field.
 * Rainy Day Case #2**:
 * 1) If they group name entered by the User is the same name as an already existing group, the User does not leave the 'create a group' page and are instead presented with an error message informing them that the group name is already in use, and provides them with a link to that group's page. <Include View Group>.

= = = //__Join a Group:__// = (David Woodruff)
 * Synopsis:** A Faceplace User joins a desired user group.
 * Actor/User:** Faceplace User


 * Preconditions:** The User is logged in and currently viewing the group they desire to join<See View Group>.


 * Sunny Day Case**:
 * 1) The User clicks on a join group button that is on the group's page. (See Rainy Day #1)
 * 2) The User remains on the same page, but is informed that they are now part of that group.
 * 3) The User's information is updated, the group is added to the user's lists of joined groups.
 * Rainy Day Case #1**:
 * 1) If the User is already a member of the group, they will see a leave group button instead of the link/button to join. <See Leave Group>

= = = //__Leave a Group:__// =
 * (David Woodruff) **
 * Synopsis**: A Faceplace User chooses to leave a group they had previously joined.


 * Actor/User**: Faceplace User


 * Preconditions**: User is logged in, has previously joined the group they now wish to leave, and is currently viewing that group's page<See View Group>.


 * Sunny Day Case**:
 * 1) The User clicks the clearly visible button specified for leaving the group located on each group page.
 * 2) The page reloads and the user is presented with a message informing them that they have successfully left the group.
 * 3) The User is removed from the group, which is reflected throughout the Faceplace webapp (such as it is not longer displayed as one of that User's groups).

= = = //__View a Group:__// =
 * (D **** avid Woodruff) **
 * Synopsis**: A Faceplace User view's a group's page, such that a group is a club, organization, or some other collection of people.


 * Actor/User**: Faceplace User


 * Preconditions**: User is logged in.


 * Sunny Day Case:**
 * 1) <Include Search for a Group/Event/User> The User clicks on the user group's name, which redirects the browser to the group's page/profile.
 * 2) The page loads, presenting the User with a page that display the group's name and description, as well as a list of all the users in the group and an add/leave button clearly visible, depending on the User's status with the group. Add/leave button is determined by whether or not the User is currently a member of that group. If they are then the button displayed is one for leaving the group <See "Leave A Group">, if they are not currently a member the button displayed is one for joining the group <See "Join A Group">.

= = = //__Like a Status:__// = (Val Igal)
 * Synopsis**: A Faceplace user likes a status on their profile page or on a friend's profile page and denotes this by selecting a "like" button on the status.


 * Actor/User:** Faceplace User


 * Preconditions:** The user is a registered Faceplace user and is logged in.

1. From a profile page, the user locates the status located next to the name of the user whose profile it belongs to. 2. Below the status on the right-hand side is a button with the word "like" in the center of it. 3. The user clicks this button. 4. The wall post is then associated to the user and will be notified every time any user interacts with the status. 1. ** If the user has liked the status already, the like button is no longer visible, instead they are presented with a “Unlike” button. **
 * Sunny Day Case:**
 * Rainy Day Case #1**:

= = = //__Like a Wall Post:__// = (Val Igal)
 * Synopsis:** A Faceplace user likes a wall post on their profile page or on a friend's profile page and denotes this by selecting a "like" button on the wall post


 * Actor/User**:FaceplaceUser


 * Preconditions:** The user is a registered Faceplace user and is logged in.

1. From a profile page, the user locates a wall post they like 2. Below the wall post is a button with the word "like" in the center of it 3. The user clicks this button 5. The wall post is then associated to the user and will be notified every time any user interacts with the wall post
 * Sunny Day Case**:
 * 4. The User is then shown to have "liked" said post to other users who view the post. **


 * Rainy Day Case #1**:
 * 1) **  If the user has liked wall post, the like button is no longer visible, instead they are presented with a “Unlike” button.  **

= //__** Like a Picture: **__//  = (Val Igal)
 * Synopsis:** A Faceplace user likes a wall post on their profile page or on a friend's profile page and denotes this by selecting a "like" button on the wall post


 * Actor/User:**Faceplace User


 * Preconditions:** The user is a registered Faceplace user and is logged into the webapp

1. From a profile page, the user locates the photo album 2. Below each picture in the album is a button with the word "like" in the center 3. The user clicks this button 4. The User is then shown to have "liked" said picture to other users who view the picture 5. The wall post is then associated to the user and will be notified every time any user interacts with the wall post
 * Sunny Day Case:**

**Rainy Day Case #1**:
 * 1.If the user has liked picture, the like button is no longer visible, instead they are presented with a “Unlike” button. **

= //__View Who is Online :__// = (Val Igal)
 * Synopsis:** A Faceplace wants to see the friends that are online at the moment.


 * Actor/User:** Faceplace user


 * Preconditions:** The Faceplace user is logged in and has friends on their friend list

1. On the user's homepage a sidebar with a list of friends is visible 2. The user locates this list. Beside each friend's name in the list is a green character which symbolizes that the friend is online <See Rainy Day Case #1> 3. The user can then click on the name of the online friend and view their profile
 * Sunny Day Case**:

1. When a friend who was once online when the user initially clicked the name goes offline the application gives the user a message stating that the user is no longer online and changes the green character to red = //__Block a User:__// = (Val Igal)
 * Rainy Day Case #1:**
 * Synopsis:** A Faceplace wants to block another Faceplace user from being able to access their account.


 * Actor/User:** Faceplace user


 * Preconditions:** The Faceplace user is logged in and has friends on their friend list.

1. On the user's homepage a sidebar with a list of friends is visible. 2. <Include View Friend Profile>The user views the profile of the friend they wish to block. 3. On the friend's profile page an button underneath their name is visible with the word "block user" in the center of the button. 4. The user clicks this button and the application then displays a message asking the user to confirm their decision to block the user <See Rainy Day Case #1>. 5. The user clicks the yes button. 6. The user is then redirected back to their homepage.
 * Sunny Day Case**:

1. If the user clicks no, the "block user" request is canceled and the friend's profile is displayed <See Sunny Day Case #5>.
 * Rainy Day Case:**