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.