Part 3: CRC Cards - CMPUT301W23T21/QR-Project GitHub Wiki

A high-level overview of the main classes and their responsibilities in the QR code hunting app using CRC cards.

LandingPageActivity

Responsibilities Collaborators
Allows user/player to sign up to create a new account LeaderboardActivity
Connects with the FireBase FireStore to store the data QRCodeActivity
Views the first page of the app to the user SignUpActivity
Hash
FireStore

LeaderboardActivity

Responsibilities Collaborators
Displays the leaderboard with scores UserProfileActivity
Connects with the FireBase FireStore to store the data QRCodeActivity
Displays the user's friends' scores SignUpActivity
Hash
FireStore
Player

QRCodeActivity

Responsibilities Collaborators
Scans and recognises QR codes and barcodes LandingPageActivity
Hashes the scanned code and score it based on a scoring system LeaderboardActivity
Takes a photo of the scanned object Map
Records geolocation of the scanned code UserHomeActivity
Adds the score and the hash of the scanned code to the player's account UserProfileActivity
ScanActivity
Player
QR_Code

QR_Code

Responsibilities Collaborators
Contains a Hash object, photo with geolocation, and name of the QRCode Hash
Creates a map of key values of attributes to be used by DB FireStore
Gets photo of the QR_Code and geolocation QRCodeActivity
UserHomeActivity
LeaderboardAcitvity

Hash

Responsibilities Collaborators
Contains hashed string QRCode
Calculates score from hashed string
Generates names from hashed string

Photo

Responsibilities Collaborators
Stores geolocation of the QR Code internally QRCode
Shows the whereabouts of the QR Code Scanner

Player

PlayerAccount

Responsibilities Collaborators
Store player's information, including the total score, scanned QR codes, and photos locally QRCodeScanner
Adds new QRCodes to its collection Map
Deletes QRCodes from its collection FireStore
Provide a summary of the player's activity, including the highest-scoring QR codes, the number of QR codes, and the total score

FireStore

Responsibilities Collaborators
Store player's information, including the total score, scanned QR codes, and photos QRCodeActivity
Adds the new personal file(s) and QR codes to the database when being added Map
Removes the QR codes from the database when being removed by the user Player
Store the hash of the scanned QR codes to avoid duplicates LandingPageActivity
Provide a summary of the player's activity, including the highest-scoring QR codes, the number of QR codes, and the total score LeaderboardActivity
UserHomeActivity
UserProfileActivity

Map

Responsibilities Collaborators
Show the location of the scanned QR codes on a map Player
Show other players' activity, including their scanned QR codes and photos QR_Code
Allow players to search for QR codes in a certain region