Requirements

After significant discussions and extensive research our team developed the following requirements and Use Cases for the project.


Due to the nature of our project we divided the requirements into two sub-sections, one for the API (Application Programming Interface) and one for the PoC (Proof of Concept).


API REQUIREMENTS







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


PoC REQUIREMENTS







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)

Use Cases

User Login

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


Scan for ads

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


Pick an ad

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


Start playing

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


Scoring

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