Part 2 CRC Cards - CMPUT301F25quartz/quartz-events GitHub Wiki
| Responsibilities | Collaborators |
|---|---|
| • View event lists • Manage their own profile |
AuthenticationManager, NotificationService, ProfileDB |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Browse the events/profiles • Moderate/remove events, images, profiles and organizers • Adhere to app policies |
EventDB, ProfileDB, NotificationLog, Authentication, AdminController |
| Responsibilities | Collaborators |
|---|---|
| • Admin console for browsing moderation queues • Remove events/profiles/images • View/Export notification logs |
AdminController, EventDB, ProfileDB, NotificationLogDB, NotificationLogAdapter |
| Responsibilities | Collaborators |
|---|---|
| • Moderate/remove events/profiles/images • Review NotificationLog and export audits • Enforce policy actions |
EventDB, ProfileDB, NotificationLog, AdminActivity |
| 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 |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Create/store user id • Update the user information • Delete user profile |
AuthenticationManager, Participant, Admin, Organizer, Profile, ProfileDBConnector, ProfileConnector |
| Responsibilities | Collaborators |
|---|---|
| • Create/update/delete profiles; validate fields • Role assignment & permission checks • Provide profile data to activities |
ProfileDB, AuthenticationManager, ProfileActivity |
| Responsibilities | Collaborators |
|---|---|
| • Low-level Firestore connectivity for profiles • Handle network/retry/offline caching |
ProfileDB |
| Responsibilities | Collaborators |
|---|---|
| • Show profile details & role badges • Edit contact info/preferences • Show notification settings |
Profile, ProfileController, NotificationService |
| Responsibilities | Collaborators |
|---|---|
| • Bind profile entries for admin/organizer views • Show roles, contact info, flags • Provide selection callbacks (moderation/edit) |
Profile, AdminActivity, ProfileActivity |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Filter the events for entrants • Show the list of events • Store events in DB |
EventDB, Event, EventListAdapter |
| Responsibilities | Collaborators |
|---|---|
| • Manage information/subcollection for an event (id, event, info) • Store all the events and their status |
Event, AuthenticationManager, EventList, EventDBConnector, 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 |
| Responsibilities | Collaborators |
|---|---|
| • Low-level Firestore connectivity for events • Handle network/retry/offline caching |
EventDB |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Edit event fields; validate inputs (dates/capacity/status) • Upload/update poster image • Save/discard changes |
Event, EventController, EventDB |
| Responsibilities | Collaborators |
|---|---|
| • Display scrollable/browsable list of events • Search/sort/filter (status/category/date) • Navigate to EventActivity on selection |
EventList, EventListAdapter, EventController |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Add or remove participants • Show the current count/capacity using registration window |
Event, EventDB, Lottery, Organizer, Participant |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Show waiting list membership & position • Accept/decline invitation UI • Organizer tools: replacement draw, announcements |
WaitingList, WaitingListController, LotteryService, NotificationService, WaitingListAdapter |
| Responsibilities | Collaborators |
|---|---|
| • Bind participant entries and positions • Show invitation statuses & actions • Support sorting/filtering by status |
WaitingList, WaitingListActivity |
| 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 |
| 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 |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Store notification log records (sender, audience, event, timestamp) • Provide export & query endpoints |
NotificationService, AdminController, NotificationLogDBConnector |
| Responsibilities | Collaborators |
|---|---|
| • Low-level Firestore connectivity for notification logs | NotificationLogDB |
| Responsibilities | Collaborators |
|---|---|
| • Bind notification log rows (time, audience, type, event) • Provide filters by event/sender/type • Support export selection UI |
NotificationLog, AdminActivity |
| 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 |
| Responsibilities | Collaborators |
|---|---|
| • Encapsulate draw algorithms & fairness checks • Replay/seed control and auditability • Return selection results for persistence |
Lottery, EventDB, NotificationService, WaitingList |
| Responsibilities | Collaborators |
|---|---|
| • Generate QR image for the event • Scan and decode QR codes |
EventDB, Organizer, EventActivity |
| Responsibilities | Collaborators |
|---|---|
| • Pick/crop/compress poster images • Upload to storage and return URL • Validate MIME/size constraints |
EventEditActivity, EventController |
| Responsibilities | Collaborators |
|---|---|
| • Capture queries & filter selections • Notify controller to re-query/re-sort • Persist last-used preferences |
EventListActivity, EventController, EventListAdapter |
| Responsibilities | Collaborators |
|---|---|
| • Reusable validators (dates, capacity, roles, windows) • Provide error messages per field • Prevent invalid state transitions |
EventController, ProfileController, WaitingListController, EventEditActivity |
| 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> |
, , |