Iteration 3 User Stories

For iteration 3, you must implement the following user stories (features). Point values will be indicated in [square brackets] (done about half-way through the iteration).

As a user I want to...

Photos

  • [20] Each time I create a new game play, I want to be able to take a photo to remember the event.
    • I want to take the selfie after I have entered the score, but before I see what achievement was earned.
    • Often, I'll take it as a selfie of the players, but some times I'll take it of just the game board to remember some memorable aspect to the game.
    • I want to be able to return to viewing a specific game play and be able to view the photo that I took. OK if this is another button I have to press, or if it is shown to me automatically.
    • I want the photos to be saved between times when I run the app (don't delete my picture!)
    • It would be nice if the photo were to show up in the Android photo app (but not required). If it does, I don't ever want the app to delete it.
    • I want to be able to change the photo for a game play when I'm editing it.
    • It would be nice if the photo were to show up somehow on the achievement celebration screen (where there is some animation). This is not required, but it would be a nice way to share our photo and accomplishment with the other players.
  • [20] I want to be able to take a photo of a game's (physical) box and use that in the app so that I can quickly recognize my games rather than having to read names.
    • I want each game configuration to have a photo (or some generic image if the user does not take a photo).
    • I want the listing of different game configurations to show each game's photo as an icon in the list, along with the game configuration's name.
    • I want to be able to change the game box's photo when I'm editing a game configuration.
    • I want the photo to persist between launches of the application.

Achievement Celebration Page

  • [2] When viewing the achievement celebration page, I want to see how close we were to the next higher achievement so that it may motivate us in future games. I want to be told how many points we were away from the next level, and be told what the next level's name is.
  • [2] When viewing the achievement celebration page, I want to be able to change the theme so that if the game players don't like the current theme, I can quickly select a more appropriate one to show them.
  • [1] When viewing the achievement celebration page, I want to be able to replay the animation so that I can show the animation to one player, and then trigger it to play again as I show it to the next player.

Achievement Statistics

  • [20] When I am viewing a game configuration, I want to see how many times I have earned each achievement level.
    • I don't want this to be tied to a specific theme, but just the overall level.
    • I am fine with this being shown in some sort of table, or shown as a histogram, or anything else that makes it clear how many times we have earned each specific achievement within this game configuration.

About Screen

  • [15] In the app, I want to be able to view a screen which shows who wrote the app to give credit and recognition to the developers.
    • This screen should show at least the team's name and the first names of each of the developers.
    • This screen should show a list of resources that the app uses which were provided by other sources so that we give recognition to where those images/sounds/etc came from.

Score Calculator Enhancement

  • [20] When using the score calculator to add up player scores while recording a game play, I want the app to:
    • Work for at least 25 players because some users may want it for a very large game! (HINT: Don't hard-code 25 input boxes!)
    • Default to somewhere between 1 and 4 players so that it works for the average case
    • Only show me the UI elements to enter the scores for the currently selected number of players so that it is not an overwhelming UI
    • While entering or editing a game play's scores, if I enter scores and then decrease the number of players (say from 10 to 5), this will cause some of the entered scores to seem to be "lost". I want it such that if I then increase the number of players, I want the relevant previous scores that were "lost" (which I had entered when there were more users) to come back as I increase the player count.
    • If I enter scores for some number of players, then decrease the number of players and save, then I go back and edit the game play later and increase the number of players, I want each new player's score to default to 0. (i.e., don't remember the "lost" scores from decreasing the player count between when the game play is saved and when I later come back to edit it).
    • As before I want to be able to change the number of players and edit scores of existing game plays.

Constraints (for all iterations of project)

  • All development must be in the GitLab repository creating for your group.
  • Use the GitLab workflow, as discussed in class:
    • Start feature with a GitLab issue
    • Create a feature branch
    • Commit code to feature branch often
    • Merge Master to feature branch once feature completed.
    • Submit Merge Request
    • Code review, fix, and merge.
  • Good commit comments on (almost) all commits and merge requests.
  • Well built UI, including:
    • Well laid-out usable screens.
    • Works on different sized screens. Example tests on 4", 6", 10".
    • Use of icons and images where possible.
  • Simple OOD supporting not much more (if anything) than the current set of requirements.