Part 2: 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.

QRCodeScanner

Responsibilities Collaborators
Scan and recognize QR codes and barcodes PlayerAccount
Hash the scanned code and score it based on a scoring system ScoringSystem
Take a photo of the scanned object Map
Record geolocation of the scanned code
Add the score and the hash of the scanned code to the player's account

QRCode

Responsibilities Collaborators
Contains a Hash object, photo with geolocation, and name of the QRCode Scanner
Stores the players who scanned it Player
Stores the photo with geolocation Photo
Hash

Hash

Responsibilities Collaborators
Contains hashed string QRCode
Calculates score from hashed string based on some rule

Photo

Responsibilies 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 QRCodeScanner
Store the hash of the scanned QR codes to avoid duplicates Map
Provide a summary of the player's activity, including the highest-scoring QR codes, the number of QR codes, and the total score

PlayersDB

Responsibilities Collaborators
Maintaining player entities PlayerAccount
Performing actions: edit, delete player info etc PlayerDBConnector

PlayerDBConnector

Responsibilities Collaborators
Connects to the Firebase Firestore database PlayerDB

Scoring

ScoringSystem

Responsibilities Collaborators
Score the QR codes based on certain properties like hex digits QRCodeScanner
Provide a score for each scanned QR code PlayerAccount
Store a record of the scores of all scanned QR codes

ScoreDB

Responsibilities Collaborators
Maintains the score of a particular player in DB ScoringSystem
ScoreDBConnector

ScoreDBConnector

Responsibilities Collaborators
Connects to the Firebase Firestore database ScoreDB

Map

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