Object‐Oriented Analysis - CMPUT301F25static1/static1-events GitHub Wiki

Object-Oriented Analysis (CRC Cards)

This page has the CRC (Class–Responsibility–Collaborator) cards for the application as part of the deliverables for the part 2 milestone.

Each CRC card has the following:

  • Class: name that represents a class in Java
  • Responsibilities: what the class should do
  • Collaborators: what other classes it interacts with

Each card is listed below in a tabular format:

Event

Responsibilities Collaborators
Store information about what it is such as event name, location, time, max entrants, poster, signup deadline Entrant
Be updatable by its organizer Organizer
Associated with an event identifier for QR code scanning Admin
EventsDatabaseCollector

Profile

Responsibilities Collaborators
Store information such as first name, last name, email, phone number Entrant
Associated with a Android device identifier Organizer
Contains the event history Admin
ProfileDatabaseCollector

Entrant

Responsibilities Collaborators
Join or leave a waitlist for an event Profile
Accept or decline invitations for an event Event
Put in personal information to create profile Waitlist
Delete profile
Opt out of notifications

Notification

Responsibilities Collaborators
Store the notification content such as title, message, recipient, and event Organizer
Don't display for entrants who have disabled notifications Event
Admin
Entrant
NotificatonsDatabaseCollector

Admin

Responsibilities Collaborators
View and delete events Profile
View and delete images Event
View and delete profiles Notification
View notification logs Organizer

Organizer

Responsibilities Collaborators
Create and update an event Event
Send notifications Notification
Generate a QR code for event Profile
Export entrants as a CSV Geolocation
Limit number of entrants optionally to a waitlist
Enable or disable geolocation verification
Optionally upload an image poster
Prompt the system to begin pooling process

Geolocation

Responsibilities Collaborators
Store the information about the location of a user's device Event
Device
Profile

PoolingSystem

Responsibilities Collaborators
Randomly select entrants from a waitlist Entrant
Draw replacement applicant for canceled entrants upon request Organizer
Waitlist

Waitlist

Responsibilities Collaborators
Stores the list of entrants on the waitlist Event
Entrant
PoolingSystem

Device

Responsibilities Collaborators
Provide the Android device identifier Event
Provide the geolocation of the device Geolocation

EventsDatabaseConnector

Responsibilities Collaborators
Update, delete and fetch data relating to Events Events

NotificationsDatabaseConnector

Responsibilities Collaborators
Update, delete and fetch data relating to Notifications in real time Notification

ProfilesDatabaseConnector

Responsibilities Collaborators
Update, delete and fetch data relating to profiles Profiles

EventsCollection

Responsibilities Collaborators
Stores a list of events Event
Sort, filter and search through events list according to set criteria EventsDatabaseCollection