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 |