User Stories - peter-monahan/Just-Chess GitHub Wiki

1. Games

Create

As a logged in user, I want to be able to create and play a game with another user

Acceptance Criteria: I should be able to...

  • Click a button on the home page to play a game with a random user that takes me to a 'waiting for other player' page
  • Click a button on a friend in my friends list to invite them to play a game with me
  • Search for a player by username, and click a button to invite them to play a game with me
  • Click a button on the 'waiting for other player' page to play a bot if no users are available to play with

Read

As a logged in user, I want to be able to see live updates to the game board as the game is played

Acceptance Criteria: I should be able to...

  • Click a button on the home page to take me to a list of games that I am currently playing
  • Click on an individual game to see the single game page with live updating

Update

As a logged in user, I want to be able to move a piece when it is my turn

Acceptance Criteria: I should be able to...

  • Click a piece on the game board and make a valid move to another tile

Delete

As a logged in user, I want to be able to finish a game

Acceptance Criteria: I should be able to...

  • Win and finish a game
  • Lose and finish a game
  • Forfeit a game (which is also considered a loss)

2. Messages

Create

As a logged in user, I want to be able to create a message to send to another player

Acceptance Criteria: I should be able to...

  • Click a button on the single game page to open the chat to send messages to my opponent
  • Click a button on a friend in my friends list to send them a direct message
  • Search for a player by username, and click a button to send them a direct message

Read

As a logged in user, I want to be able to see all the messages I am receiving

Acceptance Criteria: I should be able to...

  • Click a button on the home page to take me to a list of direct message threads
  • Click on an individual direct message thread to see the chat live updating
  • Click a button on the game page to open and see the chat live updating

Update

As a logged in user, I want to be able to edit a direct message in case I didn't mean what I said

Acceptance Criteria: I should be able to...

  • Click a edit button on one of my created messages and edit the body
  • Have a note on the message saying that I edited it

Delete

As a logged in user, I want to be able to delete a direct message in case I regret what I said

Acceptance Criteria: I should be able to...

  • Click a delete button on one of my created messages, and never see it again

3. Friend Requests

Create

As a logged in user, I want to be able to send a friend request to another player

Acceptance Criteria: I should be able to...

  • Click a button on the single game page to send a friend request to my opponent
  • Search for a player by username, and click a button to send them a friend request

Read

As a logged in user, I want to be able to see if anyone will accept my friend request

Acceptance Criteria: I should be able to...

  • Click a button on the home page to take me to a list of pending friend requests I've sent
  • Click a button on the home page to take me to a list of pending friend requests I've been sent

Update

As a logged in user, I want to be able to accept a friend request I've been sent

Acceptance Criteria: I should be able to...

  • Click an accept button on one of my friend requests to accept the request

Delete

As a logged in user, I want to be able to reject a friend request I've been sent, and cancel ones I've sent

Acceptance Criteria: I should be able to...

  • Click a reject button on one of my received friend requests to delete the request
  • Click a cancel button on one of my sent friend requests to delete the request

4. Friends

Create

As a logged in user, I want to be able to have friends

Acceptance Criteria: I should be able to...

  • Send and receive friend requests that when accepted create a friendship between two users

Read

As a logged in user, I want to be able to see a list of my friends

Acceptance Criteria: I should be able to...

  • Click a button on the home page to take me to a list of my friends

Delete

As a logged in user, I want to be able to unfriend someone if they make me mad

Acceptance Criteria: I should be able to...

  • Click a button on a friend in my friends list to unfriend them