Skip to content

CRC Cards (Part 3)

Sunday edited this page Mar 8, 2024 · 6 revisions

AddEventFragment

Responsibilities Collaborators
Display UI for adding a new event to the database EventController
Handle user input for event details UserController
Validate user input and display appropriate error messages NavController
Communicate with EventController to add the new event ImageController
Retrieve current user's information to set as organizer Uri
Handle navigation between fragments using NavController Intent
Open device's gallery to allow user to pick an image Toast
Upload selected image to Firebase Storage
Handle success and failure callbacks for image upload
Set event's poster URI to the uploaded image URI
Implement onClick listeners for buttons

Administrator

Responsibilities Collaborators
Initialize a user with administrative permissions User

Attendee

Responsibilities Collaborators
Initialize an attendee instance for a user joining an event User
Get and set the user associated with the attendee Event
Get and set the event associated with the attendee
Get and set the check-in status of the attendee
Get and set the location of the attendee's check-in
Get and set the ID of the attendee

AttendeeAddCallback

Responsibilities Collaborators
Define a callback method for successful addition of an attendee Attendee
Define a callback method for handling errors during attendee addition Exception

AttendeeController

Responsibilities Collaborators
Manage operations related to attendee management in a Firestore database FirebaseFirestore
Get the instance of the Firestore database Attendee
Add a new attendee to the Firestore database

AttendeeFetchCallback

Responsibilities Collaborators
Define a callback method for successful fetching of an attendee Attendee
Define a callback method for handling errors during attendee fetching Exception

AttendeeUpdateCallback

Responsibilities Collaborators
Define a callback method for successful attendee update
Define a callback method for handling errors during attendee update Exception

Capture

Responsibilities Collaborators
Extend CaptureActivity class for barcode scanning. CaptureActivity

EditEventFragment

Responsibilities Collaborators
Display UI for editing existing events in the database EventController
Prefill forms with existing event data Glide
Handle user input for editing event details Activity, Intent, Uri
Validate user input and display appropriate error messages Toast
Communicate with EventController to edit the event NavController
Get the instance of the current user UserController
Fetch event details by its ID ImageController
Upload selected image to Firebase Storage FirebaseFirestore
Handle success and failure callbacks for image upload
Implement onClick listeners for buttons

EditProfileFragment

Responsibilities Collaborators
Display UI for editing and updating user profile information ImageController, UserController, NavController, UserFetchCallback, UserUpdateCallback
Handle user input for profile details ActivityResultLauncher, Intent, Uri
Open device's gallery to allow user to pick a new profile image Toast
Upload selected image to Firebase Storage and update user's profile image URL ImageController
Fetch current user details from Firestore/Internal storage and display them in UI components UserController, UserFetchCallback
Save updated user details to Firestore and update local user serialization User, UserController, UserUpdateCallback
Implement onClick listeners for buttons NavController

Event

Responsibilities Collaborators
Store event data including name, description, etc. User
Manage event organizer Uri
Manage event participants Attendee
Manage event location Bitmap
Manage maximum number of attendees
Manage event sign-up address
Manage event information address
Manage event QR code for event
Manage event QR code for attendee check-in
Manage event poster URI

EventController

Responsibilities Collaborators
Manage operations related to events in Firestore Event, User, Attendee
Add a new event to the Firestore database FirebaseFirestore
Get the Firestore database instance for events FirebaseStorage
Get events organized by a specific user UserController
Get an event by its ID EventFetchCallback
Edit an existing event in the database View
Fetch the organizer of an event by reference DocumentReference, UserFetchCallback

EventDetailsFragment

Responsibilities Collaborators
Display details of an event Event, User, UserController , Glide
Navigate back to the events page NavController
Fetch event details from Firestore EventController
Fetch organizer details from Firestore FirebaseFirestore
Implement editing of event details UserFetchCallback

EventFetchByUserCallback

Responsibilities Collaborators
Handle successful retrieval of event list ArrayList, Event
Handle errors occurring during retrieval process Exception

EventFetchCallback

Responsibilities Collaborators
Handle successful retrieval of an event Event
Handle errors occurring during retrieval process Exception

EventPageFragment

Responsibilities Collaborators
Display list of events ListView, ArrayAdapter
Navigate to event details page when an event is selected NavHostFragment
Retrieve events from Firestore database EventController
Handle successful retrieval of events ArrayList, EventFetchByUserCallback
Handle errors occurring during retrieval process Exception
Navigate to add event page when addEventButton is clicked NavController

ImageController

Responsibilities Collaborators
Upload an image file to Firebase Storage FirebaseStorage
Fetch the download URL of an image from Firebase Storage StorageReference
Handle successful image upload operations UploadTask
Handle failed image upload operations
Handle successful image retrieval operations
Handle failed image retrieval operations

MainActivity

Responsibilities Collaborators
Set up navigation for the main activity NavController
Initialize the navigation controller NavHostFragment
Load the navigation host fragment layout AppCompatActivity
Create the main activity SplashScreen
Handling displaying the splash screen at start up

ProfileFragment

Responsibilities Collaborators
Display user profile information FirebaseFirestore, Glide
Navigate to other parts of the application NavController, NavHostFragment
Fetch user details from Firebase/Internal storage UserController
Initialize view components and set up button listeners ImageView, FloatingActionButton, TextView

QrCodeController

Responsibilities Collaborators
Generate QR code from event ID QRCodeWriter, BitMatrix
Convert Bitmap to byte array for storage or transmission ByteArrayOutputStream, Bitmap

QrScannerController

Responsibilities Collaborators
Handle QR code scanning ScanOptions
Add events using QR codes or perform check-ins

RoleSelectFragment

Responsibilities Collaborators
Control user role selection screen FirebaseFirestore, NavController, Toast
Add user to Firestore based on selected role UserController, User, Administrator, UserAddCallback, NavHostFragment

SignupFragment

Responsibilities Collaborators
Control user sign up screen FirebaseFirestore, Toast
Check if username is already taken UserController, UsernameCheckCallback
Navigate to the next action if username is not taken NavController, NavHostFragment

User

Responsibilities Collaborators
Store user information including username, first name, last name, and profile photo URL
Determine user's administrator status
Generate a default profile photo URL based on the username using Gravatar's service

UserAddCallback

Responsibilities Collaborators
Handle successful user add operation
Handle error during user add operation

UserController

Responsibilities Collaborators
Manage user data interactions with Firestore database User
Add a new user to the Firestore database and store a local copy FileOutputStream, DocumentReference
Update an existing user's details in the Firestore database and update the local copy ObjectOutputStream, Map
Fetch a user's details from the Firestore database or retrieve a local copy if not found Context, FileInputStream, DocumentSnapshot
Check if a username already exists in the Firestore database FirebaseFirestore, DocumentReference
Retrieve the stored username from internal storage ObjectInputStream, Context

UserFetchCallback

Responsibilities Collaborators
Handle success callback for user fetch operations User
Handle error callback for user fetch operations Exception

UsernameCheckCallback

Responsibilities Collaborators
Handle username taken status callback boolean
Handle error callback for username check operations Exception

UserUpdateCallback

Responsibilities Collaborators
Handle success callback for user updates Exception
Handle error callback for user updates