Part 2 CRC Cards - CMPUT301F25quartz/quartz-events GitHub Wiki

User

User

Responsibilities Collaborators
• View event lists
• Manage their own profile
AuthenticationManager, NotificationService, ProfileDB

Organizer

Organizer

Responsibilities Collaborators
• Create/edit/publish events (establish registration window & capacity)
• Generate the QR code
• Manage the waiting list
• Generate the QR code
• Run the draw (run the lottery, manage replacements)
• Send announcements to waiting list/canceled/selected groups
• Export attendance list
EventDB, EventController, QRCode, NotificationService, Lottery, WaitingList

Admin

Admin

Responsibilities Collaborators
• Browse the events/profiles
• Moderate/remove events, images, profiles and organizers
• Adhere to app policies
EventDB, ProfileDB, NotificationLog, Authentication, AdminController

AdminActivity

Responsibilities Collaborators
• Admin console for browsing moderation queues
• Remove events/profiles/images
• View/Export notification logs
AdminController, EventDB, ProfileDB, NotificationLogDB, NotificationLogAdapter

AdminController

Responsibilities Collaborators
• Moderate/remove events/profiles/images
• Review NotificationLog and export audits
• Enforce policy actions
EventDB, ProfileDB, NotificationLog, AdminActivity

Participant

Participant

Responsibilities Collaborators
• Browse/search/view events (through QR code)
• Join/leave waiting lists
• Accept/Decline invitation
• View waiting list size and status (receive notifications)
EventDB, WaitingList, NotificationService,ProfileDB, LotteryService

Profile

Profile

Responsibilities Collaborators
• Holds the user's identity and contact info
• Store the user's preferences
• Update the person's information
• Shows the user's role (organizer, admin, participant)
AuthenticationService, User (Participant, Admin, Organizer), NotificationService, ProfileDB

ProfileDB

Responsibilities Collaborators
• Create/store user id
• Update the user information
• Delete user profile
AuthenticationManager, Participant, Admin, Organizer, Profile, ProfileDBConnector, ProfileConnector

ProfileController

Responsibilities Collaborators
• Create/update/delete profiles; validate fields
• Role assignment & permission checks
• Provide profile data to activities
ProfileDB, AuthenticationManager, ProfileActivity

ProfileDBConnector

Responsibilities Collaborators
• Low-level Firestore connectivity for profiles
• Handle network/retry/offline caching
ProfileDB

ProfileActivity

Responsibilities Collaborators
• Show profile details & role badges
• Edit contact info/preferences
• Show notification settings
Profile, ProfileController, NotificationService

ProfileListAdapter

Responsibilities Collaborators
• Bind profile entries for admin/organizer views
• Show roles, contact info, flags
• Provide selection callbacks (moderation/edit)
Profile, AdminActivity, ProfileActivity

Event

Event

Responsibilities Collaborators
• Hold info about event(location, title, date, description, poster)
• Show event status (show capacity, if open/close)
• Track participants
WaitingList, EventList, EventDB, Organizer

EventList

Responsibilities Collaborators
• Filter the events for entrants
• Show the list of events
• Store events in DB
EventDB, Event, EventListAdapter

EventDB

Responsibilities Collaborators
• Manage information/subcollection for an event (id, event, info)
• Store all the events and their status
Event, AuthenticationManager, EventList, EventDBConnector, EventController

EventController

Responsibilities Collaborators
• Create/update/delete events; validate inputs
• Orchestrate publish/unpublish & status transitions
• Coordinate sorting/filtering & paging for lists
EventDB, EventList, Event, EventListActivity, Organizer

EventDBConnector

Responsibilities Collaborators
• Low-level Firestore connectivity for events
• Handle network/retry/offline caching
EventDB

EventActivity

Responsibilities Collaborators
• Display event details (title, description, poster, status, capacity, date/time, location)
• Join/leave waiting list actions
• Navigate to EventEditActivity (organizer)
Event, WaitingList, EventController, WaitingListController

EventEditActivity

Responsibilities Collaborators
• Edit event fields; validate inputs (dates/capacity/status)
• Upload/update poster image
• Save/discard changes
Event, EventController, EventDB

EventListActivity

Responsibilities Collaborators
• Display scrollable/browsable list of events
• Search/sort/filter (status/category/date)
• Navigate to EventActivity on selection
EventList, EventListAdapter, EventController

EventListAdapter

Responsibilities Collaborators
• Bind Event data to list cells/cards
• Render state variants (Open / Full / Closed / Selected / Not Selected)
• Emit click callbacks for navigation
Event, EventList, EventListActivity

Waiting List

WaitingList

Responsibilities Collaborators
• Add or remove participants
• Show the current count/capacity using registration window
Event, EventDB, Lottery, Organizer, Participant

WaitingListController

Responsibilities Collaborators
• Join/leave logic with window/capacity checks
• Expose waiting-list metrics for UI
• Invoke Lottery replacement draws when needed
WaitingList, EventDB, Lottery, WaitingListActivity

WaitingListActivity

Responsibilities Collaborators
• Show waiting list membership & position
• Accept/decline invitation UI
• Organizer tools: replacement draw, announcements
WaitingList, WaitingListController, LotteryService, NotificationService, WaitingListAdapter

WaitingListAdapter

Responsibilities Collaborators
• Bind participant entries and positions
• Show invitation statuses & actions
• Support sorting/filtering by status
WaitingList, WaitingListActivity

Authentication

AuthenticationManager

Responsibilities Collaborators
• Manage user login and sign up
• Create a default user profile (on first login)
• Handle sign out
• Validate roles (being an organizer, participant, admin)
ProfileDB, User, EventDB

Notification

NotificationService

Responsibilities Collaborators
• Deliver app notifications (if selected or not invite sent, organizations broadcast
• Handle push notifications and in-apps alerts
• Create log entry of the notification
Lottery, EventDB, ProfileDB, Organizer, Participant, NotificationLog

NotificationLog

Responsibilities Collaborators
• Save a log of a notification action (who sent it, what type, which event)
• Provide audit/history queries for Admin
NotificationService, Admin, NotificationLogDB

NotificationLogDB

Responsibilities Collaborators
• Store notification log records (sender, audience, event, timestamp)
• Provide export & query endpoints
NotificationService, AdminController, NotificationLogDBConnector

NotificationLogDBConnector

Responsibilities Collaborators
• Low-level Firestore connectivity for notification logs NotificationLogDB

NotificationLogAdapter

Responsibilities Collaborators
• Bind notification log rows (time, audience, type, event)
• Provide filters by event/sender/type
• Support export selection UI
NotificationLog, AdminActivity

Lottery

Lottery

Responsibilities Collaborators
• Do the primary draw of participants for an event
• Manage replacement draws
• Send notifications to the selected participants
• Add log to the notifications of when the draw happened and who drew it
EventDB, WaitingList, Organizer, AuthenticationManager, ProfileDB, NotificationService

LotteryService

Responsibilities Collaborators
• Encapsulate draw algorithms & fairness checks
• Replay/seed control and auditability
• Return selection results for persistence
Lottery, EventDB, NotificationService, WaitingList

QRCode

QRCode

Responsibilities Collaborators
• Generate QR image for the event
• Scan and decode QR codes
EventDB, Organizer, EventActivity

Poster

PosterUploader

Responsibilities Collaborators
• Pick/crop/compress poster images
• Upload to storage and return URL
• Validate MIME/size constraints
EventEditActivity, EventController

UI Components & Services

SearchBar / Filters (UI Components)

Responsibilities Collaborators
• Capture queries & filter selections
• Notify controller to re-query/re-sort
• Persist last-used preferences
EventListActivity, EventController, EventListAdapter

Validation Service

Validation

Responsibilities Collaborators
• Reusable validators (dates, capacity, roles, windows)
• Provide error messages per field
• Prevent invalid state transitions
EventController, ProfileController, WaitingListController, EventEditActivity

Access Control

Permissions

Responsibilities Collaborators
• Centralize role/permission checks
• Guard admin/organizer actions in UI & controller layers
AuthenticationManager, AdminController, EventController

##USE THIS TEMPLATE PLEASE :)

Responsibilities Collaborators
• <Responsibility 1>
• <Responsibility 2>
• <Responsibility 3>
, ,
⚠️ **GitHub.com Fallback** ⚠️