Part 4: 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 |
PictureActivity
| Responsibilities | Collaborators |
|---|---|
| Contains a Hash object, photo with geolocation, and name of the QRCode | Hash |
| Takes photo | FireStore |
| Asks for permission before taking photo | QRCodeActivity |
| UserHomeActivity | |
| LeaderboardAcitvity | |
| UserManager | |
| UtilityFunctions |
ScanActivity
| 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 |
| Add the data and details to the firebasefirestore collection | ScanActivity |
| Player | |
| QR_Code | |
| FirebaseFireStore |
SignUpActivity
| Responsibilities | Collaborators |
|---|---|
| Allows user to sign up | LandingPageActivity |
| Getting the information of the user | LeaderboardActivity |
| Storing the user's information to FirestoreFirebase | Map |
| Remember the user, so that the user does not have to log in again | UserHomeActivity |
| Getting the information such as username, userPhoneNumber, userEmail | UserProfileActivity |
| Add the data and details to the firebasefirestore collection | ScanActivity |
| Player | |
| QR_Code | |
| FirebaseFireStore |
MapActivity
| 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 | Hash |
| Ask for permission before accessing the exact location | FirestoreDBHelper |
| Getting the address through the longitude and latitude |
UserHomeActivity
| 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 | Hash |
| Ask for permission before accessing the exact location | FirebaseFirestore |
| Getting the address through the longitude and latitude | MapActivity |
| Set the preference for the permission about the geolocation, take photo | LeaderboardActivity |
| Perform command | FaceActivity |
| UserManager |
UserProfileActivity
| Responsibilities | Collaborators |
|---|---|
| Show user's profile | Player |
| Show user's total score | QR_Code |
| Show user's ranking and the leaderboard | Hash |
| Search query | FirebaseFirestore |
| See scanned QRCodes | LeaderboardActivity |
| UserSearchActivity | |
| FaceActivity |
UserSearchActivity
| Responsibilities | Collaborators |
|---|---|
| Search for friends | Player |
| Search for QRCodes | QR_Code |
| Query | Hash |
| Search query | FirestoreDBHelper |
| LeaderboardActivity | |
| UserSearchActivity | |
| FaceActivity | |
| Friend | |
| Player | |
| LeaderboardManager |
QRCodeManger
| 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_Adapter |
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 |
Comment
| Responsibilities | Collaborators |
|---|---|
| Comment on the scanned qrcodes | QRCode |
| The ability to comment | CommentAdapter |
CommentAdapter
| Responsibilities | Collaborators |
|---|---|
| Give the ability and function to comment | QRCode |
| Comment |
LeaderboardManager
| Responsibilities | Collaborators |
|---|---|
| Show the ranking of top 3 | FirestoreDBHelper |
| LeaderboardAcitivity |
UserManager
|Control and perform the whole task on the user's end| UtilityFunctions| |Sign up on the app| UserHomeActivity| |Add friends|UserProfileActivity| |Take photo|Comment| |Scan QRCodes|Comment_Adapter| |Add comment|| |Remove QRCodes||
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 |
FirestoreDBHelper
| 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 | |
| DatabaseHelper | |
| DatabaseResultCallback |