Skip to content

CRC Cards

bostonecb edited this page Oct 15, 2024 · 35 revisions

USER

Responsibility Collaborators
Manages user details like name, email, phone, device_id, as well as type of user i.e. role(s)... Class named 'Role' which is a part of User class
Generates and manage user profiles (profile updatable details such as automatically generated / uploaded profile pictures / editable user fields such as name, email...) ProfilePic
Keeps track of which role(s) they have access to through a list of their roles (pulled from database). Must have at least one role, i.e. they can be just an Entrant, or have access to Entrant & Organizer role, etc...) Role class, as well as Entrant, Organizer, & Admin classes (all extend the Role class)

ENTRANT

Responsibility Collaborators
Unique Entrant methods such as joining & leaving Events. Also keeps track of an EventList for the Entrant HomePage (visual list of Events they have registered in) Event, EventList (part of Event class)
Manages notifications related to event participation (allows them to accept & decline them) Notification
Scans QR codes to pull up event details / event pages QRCode

ORGANIZER

Responsibility Collaborators
Creates and manages (updates) events & event details Event, EventList
Generates QR codes for events QRCode
Manage Event Lists by removing pending Selected Entrants (who haven't accepted their invite) Event, EventList, User / Entrant
Creates & manages their facility profile Facility

ADMIN

Responsibility Collaborators
Manages admin-specific tasks (removing events, profiles, images, hashed QR code data) Events, User, Image & Poster classes (Poster extends Image), QRCode classes
Can browse all events, profiles, and images Event, EventList, User, Image & Poster classes (Poster extends Image)
Can remove facilities that violate app policy Facility

EVENT

Responsibility Collaborators
Manages event details like facility, date, registration deadline, event poster, QR code... Facility, Poster, QRCode
Tracks entrants and manages their participation EventList, User

EVENTLIST

Responsibility Collaborators
Maintains / manages lists of event participants like Waiting List, Selected List, Final List, & Cancelled List User

FACILITY

Responsibility Collaborators
Class for facility details such as location, name, pictures In a one-to-one relationship with Organizer

NOTIFICATION

Responsibility Collaborators
Class for keeping track of notification details / creating notifications that go to Users (Entrants) from Organizers (attributes such as dateTimeStamp, UserTo, UserFrom, notifMessage... Organizer, Entrant, User

INVITEDNOTIF

Responsibility Collaborators
Subclass of notification that contains notification archetype (message) going to Users who have been selected from pooling process to participate in event (whether drawn the first time or through a replacement draw when another User declined participation) Notification, EventList's selectedList Array of Entrants

REJECTIONNOTIF

Responsibility Collaborators
Subclass of notification that contains notification archetype (message) going to Users who have not been selected from pooling process to participate in event upon initial draw Notification, EventList's selectedList Array of Entrants

FINALNOTIF

Responsibility Collaborators
Subclass of notification that contains notification archetype (message) going to Users who are a part of the Final List of Entrants going to the Event Notification, EventList's finalList Array of Entrants

POSTER

Responsibility Collaborators
Represents promotional poster for events Subclass of Image class, Event

PROFILEPIC

Responsibility Collaborators
Manages user's profile picture (deterministically generated or uploaded one) Subclass of Image class, User

FACILITYPIC

Responsibility Collaborators
Manages pictures of the facility Subclass of Image class, Facility, Organizer

IMAGE

Responsibility Collaborators
Superclass for user's profile, posters and facilities ProfilePic, Poster, FacilityPic

QRCODE

Responsibility Collaborators
QR Code class (hashed QR code data) Organizer

Clone this wiki locally