Must Have |
---|
-- Contains basic information about each advertisement in order to recognise one (such as location or QR code) |
-- Using Amazon AWS |
-- Be RESTful and scalable |
Should Have |
-- Contains user basic user information (points, rewards, etc...) |
-- Intuitive documentation |
Could Have |
-- Basic authentication with SSL |
Won't Have |
-- Being able to pull data from advertisements database from TFL |
-- Let the advertisers make their own games/interactions |
Must Have |
---|
-- Being able to recognise advertisement at bus stops |
-- Short and Simple interactions with the ad |
-- Make use of the API |
-- Internet connection |
-- Data stored on the server |
Should Have |
-- Fairly simple user interface |
-- Use GPS system for geolocation |
-- User profile |
-- Reward system (such as voucher code etc...) |
Could Have |
-- Local/Global Ranking |
-- Overlaying custom advertisement over original ones |
-- Minimap to show nearby objects |
Won't Have |
-- A different game/interactions for each different ad |
-- Interactions with ads on billboards (for example in tube stations) |
The user input email and password of choice. The app request matching data from the system, if no match is return for both fields, a new account is created for the user with the provided credentials. The app remembers the account to leave the user stay logged in even after they exit the app.
Name | Id | Brief description | Primary Actors | Secondary Actors | Preconditions | Main flow | Postconditions | Alternative flows |
---|---|---|---|---|---|---|---|---|
Login | UC1.1 | The user can login to their account | App user | None | None | 1.The use case starts when the user opens the app 2. The user is asked to provide email and password 3. The app looks for matching email and then matching password in the database 4. There is matching credentials found |
1. The user is logged in 2. The credentials are remembered so the user won’t need to log in next time |
1. EmailNotFound 2. PasswordNotFound |
Login: EmailNotFound | UC1.2 | The user can register an account with their emai | App user | None | The email the user provided in the login screen is not in the database | 1. The use case starts when the email provided is not found in the database 2. A new account is created with their email 3. The app requests a password from the user 4. The account is created in the database when the user confirms their credentials |
1. A new account is created for the user with their email and password 2. The user is logged in 3. The credentials are remembered so the user won’t need to log in next time |
None |
Login: PasswordNotFound | UC1.3 | The user input the wrong password | User | None | None | 1. The use case starts when the email provided by the user is in the database but the password associated with it doesn’t match 2. The user is asked to provide a password again until the correct password is provided 3. The correct password is provided by the user |
1. The user is logged in 2. The credentials are remembered so the user won’t need to log in next time |
None |
The user starts the app. The app uses the location of the user, check with the server and request locations of nearby advertisements. The app displays a map of the surrounding area of the user and mark the advertisements on the map based on their locations. If the advertisement has been interacted with by the user, it will be marked with green, otherwise it is marked with red.
Name | Id | Brief description | Primary Actors | Secondary Actors | Preconditions | Main flow | Postconditions | Alternative flows |
---|---|---|---|---|---|---|---|---|
ScanAds | UC2 | The app scans for nearby advertisements and mark them on the map | User | None | The user is logged in | 1. The app gets the location of the user 2. The app displays a map with user as an arrow to indicate direction they are facing 3. The app makes request for nearby advertisements from the server with the user location 4. The app checks whether or not the locations received has been visited by the user 5. The app marks the advertisements onto the map with appropriate colour (green: visited, red: not visited) |
The map is updated with advertisement locations and status | None |
The user picks an advertisement marker on the map. There’s a dialogue box overlay with details about the advertisement such as how many points in total does it has, if the advertisement has been played by the user, it will also display the previous points achieved. In the dialogue there’s a guide button which will guide the user to the advertisement using navigation.
Name | Id | Brief description | Primary Actors | Secondary Actors | Preconditions | Main flow | Postconditions | Alternative flows |
---|---|---|---|---|---|---|---|---|
Select | UC3 | The user selects an advertisement marker on the map | User | None | There are advertisements marked onto the user’s map | 1. The use case starts when the user selects one of the markers shown 2. The app uses the location of the marker and request further details about the advertisement from the database 3. There is a guide button display which will guide the user to that advertisement if pressed |
The detailed information about the selected advertisement is displayed | None |
When the user arrived at the advertisement board, the user can press play to start interacting with the advertisement. The app request and load the appropriate interactions based on the advertisement chosen by the user. The app loads the appropriate functionality that would be used to achieve the interactions such as face detection.
Name | Id | Brief description | Primary Actors | Secondary Actors | Preconditions | Main flow | Postconditions | Alternative flows |
---|---|---|---|---|---|---|---|---|
StartGame | UC4 | The user starts interacting with the advertisement | User | None | The user arrived at the selected advertisement and press Play | 1. The app loads game downloaded when the user selected the advertisement 2. The app loads the suitable app features to interact with the advertisement 3. The camera is open for the user to start playing |
The game starts | None |
Each correct task done by the user will be rewarded with points from the app. The app records the final score onto the user profile. If the user achieves a certain amount of points, the app notifies the user of achievements/rewards.
Name | Id | Brief description | Primary Actors | Secondary Actors | Preconditions | Main flow | Postconditions | Alternative flows |
---|---|---|---|---|---|---|---|---|
Score | UC5.1 | The user score points | User | None | The game has started and the user makes a correct move | 1. The app analyses the move to confirm it matches with the expected interaction 2. The app adds the points associated with the particular interaction to the user profile |
The score is updated to the user profile | 1. MinusPoint 2. UnlockAchievement |
Score: MinusPoint | UC5.2 | The user gets minus points | User | None | The user makes wrong moves | 1. The app analyses the move to confirm it doesn’t match with the expected interaction 2. The app minuses the points associated with the particular interaction to the user profile |
The score is updated to the user profile | None |
Score: UnlockAchievement | UC5.3 | The user scores enough points to unlock an achievement | User | None | The user score points | 1. The app checks with the list of achievements 2. The app finds an achievement that has been met 3. The app displays congratulation message |
The achievement is unlocked in the user profile | None |