CRC Cards and UML - CMPUT301F24syzygy/syzygy-events GitHub Wiki
UML
Please find the uml .uxf
file here

Model Classes
Dissolvable
Database
Responsibilities |
Collaborators |
Contains an active connection to the Firebase database |
DatabaseInstance |
Updates the corresponding database instance when the database is updated |
|
Updates the database upon changes in database instances |
|
Creates new instances of database instances |
|
Deleted database instances |
|
Can load and unload instances |
|
Knows which instances have been loaded for the app |
|
Can fetch all loaded instances of the app |
|
Handles errors within database instances and queries |
|
DatabaseInstance
Responsibilities |
Collaborators |
Super class of all storage classes |
Database |
Knows its properties |
User |
Knows which properties are editable and nullable |
Event |
Can edit its properties |
Facility |
Knows if the property should cascade delete |
EventAssociation |
Notifies the database upon modifications |
Image |
Receives modifications from the database |
Notification |
Alerts listeners of modifications |
PropertyWrapper |
Handles validation of properties |
|
Can be initialized |
|
Can be deleted |
|
Can auto delete if a property's instance is deleted |
|
Can delete property instances upon deletion |
|
DatabaseQuery
Responsibilities |
Collaborators |
Queries the database for a collection of instances based on a given query |
Database |
Can apply pagination to results |
DatabaseInstance |
Knows if its on the first/last page |
|
Knows if updates or deletions have occured |
|
Can refresh data |
|
DatabaseInfLoadQuery
Responsibilities |
Collaborators |
Queries the database for a collection of instances |
DatabaseQuery |
Can apply pagination to results, adding next page to previous results |
DatabaseInstance |
Knows if there is more data to load |
|
Know if updates or deletions have occurred |
|
Can refresh data |
|
User
Responsibilities |
Collaborators |
Can retrieve its property values |
DatabaseInstance |
Can edit its editable property values |
Facility |
Knows its device ID |
Image |
Knows if it has admin privileges |
|
Can be deleted and deletes all its notifications and associations, its image, and its facility |
|
Facility
Responsibilities |
Collaborators |
Can retrieve its property values |
DatabaseInstance |
Can edit its editable property values |
User |
Knows its organizer |
Image |
Can be deleted and deletes all its events |
|
Notification
Responsibilities |
Collaborators |
Can retrieve its property values |
DatabaseInstance |
Knows who sent and who received the notification |
User |
Knows if the notification has been read |
Event |
Knows the subject and body of the notification |
|
Knows the event associated with the notification |
|
Can be deleted |
|
Image
Responsibilities |
Collaborators |
Can retrieve its property values |
DatabaseInstance |
Knows which data object contains the image |
|
Knows the url to the image |
|
Can be deleted |
|
Can be updated |
|
Event
Responsibilities |
Collaborators |
Can retrieve its property values |
DatabaseInstance |
Can edit its editable property values |
Facility |
Knows when its registration is open |
User |
Knows the current amount of user in the waitlist and enrolled |
EventAssociation |
Can update the count of users in the waitlist and enrolled |
DatabaseQuery |
Can add a user to the waitlist |
EventQueryModifier |
Can retrieve the association of a user to the event |
|
Can retrieve all users associated to the event by status |
|
Can modify the association status of a selection of users associated with the event |
|
Can notify a selection of users associated with the event with a custom or hardcoded notification |
|
Can retrieve a random selection of n users on the waitlist |
|
Creates the QR code and handles its hashed data |
|
Can be deleted and deletes all associations and its image |
|
EventAssociation
Responsibilities |
Collaborators |
Can retrieve its property values |
DatabaseInstance |
Can edit its editable property values |
User |
Knows the status of the association between a user and an event |
Event |
Can modify the status |
EventQueryModifier |
Knows where the user joined the waitlist of the event from |
|
Can notify the user |
|
Can be deleted |
|
PropertyWrapper
Responsibilities |
Collaborators |
Contains the meta data and value of a property for a database instance |
DatabaseInstance |
Knows if the property is editable |
|
Knows the type of the property |
|
Knows if the property is an instance |
|
Can validate the value |
|
Knows if the instance property can be null |
|
Knows if the instance should be deleted when the owner instance is deleted |
|
EventQueryModifier
Activities
SyzygyApplication
Responsibilities |
Collaborators |
Knows which activity is currently selected |
User |
Can switch to another activity |
AdminActivity |
Can pass information from one activity to another |
EntrantActivity |
Knows which user profile is using the application |
OrganizerActivity |
Knows which activities are available to the user based on the permissions of the user |
DatabaseHandler |
Can retrieve the current geolocation of the user |
All Fragments |
Knows which fragment was last viewed |
SignupActivity |
Knows which fragment is currently viewed |
SyzygyActivity |
Knows which fragment's should be available on the navigation bar based on the activity |
|
Updates the navigation bar with the available buttons |
|
Updates the buttons with a selected overlay if the corresponding fragment or sub-fragment is selected |
|
Updates a menu list with the available activities |
|
Notifies the activity with a request to change fragments |
|
SyzygyActivity
Responsibilities |
Collaborators |
Superclass of all activities used by the application |
SignupAcitivity |
Contains helper methods for the application |
EntrantActivity |
|
OrganizerActivity |
|
AdminActivity |
|
InitActivity |
|
SyzygyApplication |
SignupActivity
Responsibilities |
Collaborators |
Knows if there is a user account association with the device |
SyzygyApplication |
Handles the sign-up fragment if an account is not associated |
SyzygyActivity |
EntrantActivity
Responsibilities |
Collaborators |
Handles the fragments related to signing-up to events |
SyzygyApplication |
Handles the fragments related to the user profile |
SyzygyActivity |
Handles the fragments related to the user's notifications |
EntrantProfileFragment |
Knows which fragment is currently active |
EntrantNotificationsFragment |
Can switch between fragments |
EntrantFacilityPageFragment |
|
EntrantEventsFragment |
|
EntrantEventPageFragment |
|
EntrantEditProfileFragment |
|
SignupFacilitySecondaryFragment |
|
EntrantQrFragment |
OrganizerActivity
Responsibilities |
Collaborators |
Handles the fragments related to creating and modifying events |
SyzygyApplication |
Handles the fragments related to a facility's profile |
SyzygyActivity |
Knows which fragment is currently active |
OrganizerFacilityFragment |
Can switch between fragments |
OrganizerEventsFragment |
|
OrganizerEditFacilityFragment |
|
OrganizerCreateEventFragment |
|
OrganizerEventFragment |
AdminActivity
Responsibilities |
Collaborators |
Handles the fragments related to browsing and deleting user profiles |
SyzygyApplication |
Handles the fragments related to browsing and deleting events |
SyzygyActivity |
Handles the fragments related to browsing and deleting facilities |
AdminProfilesFragment |
Handles fragments which warn the user when they try to delete an item |
AdminProfileFragment |
Knows which fragment is currently active |
AdminEventsFragment |
Can switch between fragments |
AdminEventFragment |
|
AdminFacilityFragment |
|
AdminImagesFragment |
InitActivity
Responsibilities |
Collaborators |
Displays the loading bar upon initialization of the app |
SyzygyApplication |
|
SyzygyActivity |
QrCaptureActivity
Responsibilities |
Collaborators |
Opens the camera and scans a QR |
|
Fragments
Entrant
EntrantQrFragment
Responsibilities |
Collaborators |
Allows the user to open the camera and scan a qr |
QrCaptureActivity |
Navigates the user to the event if a qr is scanned |
EntrantActivity |
EntrantProfileFragment
Responsibilities |
Collaborators |
Displays the details of the users profile |
EntrantActivity |
Displays the users profile image |
User |
Allows the user to navigate to the edit page |
|
EntrantNotificationsFragment
Responsibilities |
Collaborators |
Displays all notifications which the users has received |
EntrantActivity |
Allows the user to browse through their notifications |
Notification |
Allows the user to view more information for any notification |
DatabaseInfLoadQuery |
Updates with new notifications automatically |
EntrantNotificationsAdapter |
EntrantNotificationsAdapter
Responsibilities |
Collaborators |
Displays a notification as a small list card |
EntrantNotificationsFragment |
|
Notification |
EntrantFacilityPageFragment
Responsibilities |
Collaborators |
Displays information about a given facility |
EntrantActivity |
Displays the facility's profile image |
Facility |
Shows the user where the facility is located on a map |
Event |
EntrantEventsFragment
Responsibilities |
Collaborators |
Displays all events that the user is associated with |
EntrantActivity |
Allows the user to browse through events |
Event |
Allows the user to navigate to a given event |
DatabaseInfLoadQuery |
|
EntrantEventsAdapter |
EntrantEventsAdapter
|Displays an event as a small list card|EntrantNotificationsFragment
||EventAssocation
EntrantEventPageFragment
Responsibilities |
Collaborators |
Displays information about an event |
EntrantActivity |
Knows the status of the user within the event |
Event |
Knows if which status (registration/closed) the event is in |
EventAssociation |
Allows the user to switch between statuses |
|
Displays the event poster |
|
Displays a link to view the event |
|
EntrantEditProfileFragment
Responsibilities |
Collaborators |
Allows the user to edit their profile |
EntrantActivity |
Allows the user to edit their profile image |
User |
Displays the current information |
|
Saves changes on submit |
|
SignupFacilitySecondaryFragment
Responsibilities |
Collaborators |
Allows the user to create a facility |
EntrantActivity |
Validates information before creating |
Facility |
Displays validation errors |
|
Allows the user to upload an image |
|
Creates the event and navigates to the Organizer Activity |
|
Organizer
OrganizerFacilityFragment
Responsibilities |
Collaborators |
Displays information about the user's facility |
OrganizerAcitivty |
Displays the user's facility's profile image |
Facility |
Allows the user to navigate to the edit facility page |
|
OrganizerEventsFragment
Responsibilities |
Collaborators |
Displays all events that the user has created with this facility |
OrganizerActivity |
Allows the user to browse through events |
DatabaseInfLoadQuery |
Navigates to the event page for a given event |
OrganizerEventsAdapter |
OrganizerEventsAdapter
Responsibilities |
Collaborators |
Displays an event as a list card |
OrganizerEventsFragment |
|
Event |
OrganizerEditFacilityFragment
Responsibilities |
Collaborators |
Allows the user to edit their facility profile |
OrganizerAcitivty |
Allows the user to edit the profile image |
Facility |
Displays the current information |
|
Saves changes on submit |
|
OrganizerCreateEventFragment
Responsibilities |
Collaborators |
Allows the user to create an event |
OrganizerAcitivty |
Allows the user to upload an image for the event |
Event |
Validates the information given before submitting |
|
Displays validation errors |
|
Creates the event and navigates to the event page |
|
OrganizerEventFragment
Responsibilities |
Collaborators |
Displays information about the given event |
OrganizerAcitivty |
Displays the event profile image |
DatabaseInfLoadQuery |
Allows the user to edit the profile image |
Event |
Displays the QR code |
EventAssociations |
Allows the user to copy the QR hash |
LotteryResult |
Displays all users associated with event |
OrganizerAssociatedEntrantsAdapter |
Allows the user to filter displayed users by status |
|
Allows the user to trigger the lottery |
|
Allows the user to cancel users who have not enrolled |
|
Displays the location of users who have signed up |
|
OrganizerAssociatedEntrantsAdapter
Responsibilities |
Collaborators |
Displays an associated user as a list card |
OrganizerEventFragment |
|
EventAssociation |
Admin
AdminProfilesFragment
Responsibilities |
Collaborators |
Displays all user profiles |
AdminActivity |
Allows the user to browse through profile |
AdminProfilesAdapter |
Navigates to the profile page for a selected user |
DatabaseLoadInfQuery |
AdminProfilesAdapter
Responsibilities |
Collaborators |
Displays a user as a list card |
AdminProfilesFragment |
|
User |
AdminProfileFragment
Responsibilities |
Collaborators |
Displays information about a given user |
AdminActivity |
Displays the user profile image |
User |
Allows the admin to navigate to the user's facility |
Facility |
Allows the admin to delete the user |
|
AdminEventsFragment
Responsibilities |
Collaborators |
Displays all events |
AdminActivity |
Allows the admin to browse through events |
AdminEventsAdapter |
Navigates to the event page of a selected event |
DatabaseLoadInfQuery |
AdminEventsAdapter
Responsibilities |
Collaborators |
Displays the event as a list card |
AdminEventsFragment |
|
Event |
AdminEventFragment
Responsibilities |
Collaborators |
Displays information about a given event |
AdminActivity |
Displays the event poster image |
Event |
Displays the event QR code |
Facility |
Allows the admin to remove the QR code |
|
Allows the admin to navigate to the event's facility |
|
Allows the admin to delete the event |
|
AdminFacilityFragment
Responsibilities |
Collaborators |
Displays information about a given facility |
AdminActivity |
Displays the facility's profile image |
Facility |
Allows the admin to delete the facility |
|
AdminImagesFragment
Responsibilities |
Collaborators |
Displays all images uploaded to the app |
AdminActivity |
Allows the admin to browse through images |
AdminImagesAdapter |
Displays the image in a bigger view on click |
DatabaseLoadInfQuery |
Allows the admin to delete a selected image |
Image |
AdminImagesAdapter
Responsibilities |
Collaborators |
Displays the image and location details as a list card |
AdminImagesFragment |
|
Image |