CRC Cards - CMPUT301F25quanti/quanti-agents GitHub Wiki

CRC Cards for QuantiAgents Application

Models

Event

Event
Responsibilities Collaborators
Store event details (title, description, category, dates, location, cost).
Maintain event poster image reference and QR code reference.
Track registration start and end times and enforce open/closed status.
Hold references to organizer, waiting list, selected list, confirmed list, and cancelled list.
Update event status (OPEN, CLOSED, CANCELLED).
Store optional waiting list cap and expose current count.
Hold geolocation requirement flag for join gating.
Track if first lottery has been completed.
User
Image
QRCode
GeoLocation
RegistrationHistory
LotteryResult

User

User
Responsibilities Collaborators
Store user profile information (name, username, email, phone, password hash).
Maintain device ID association for login-free access.
Store notification preferences (enabled/disabled).
Hold registration history for past event participation.
Track user role (USER, ADMIN, ORGANIZER).
Store account creation date and last viewed browse timestamp.
Provide getters and setters for all profile fields.
DeviceIdManager
RegistrationHistory
Event
Notification

Notification

Notification
Responsibilities Collaborators
Store notification details (ID, type, recipient, sender, affiliated event).
Maintain notification status and details text.
Track timestamp and read status.
Support different notification types (GOOD, BAD, WARNING, REMINDER).
Provide getters and setters for all notification fields.
User
Event

LotteryResult

LotteryResult
Responsibilities Collaborators
Store lottery drawing results (event ID, selected entrant IDs, timestamp).
Record when lottery was drawn for audit purposes.
Provide getters and setters for lottery result fields.
Event
User

QRCode

QRCode
Responsibilities Collaborators
Store QR code information (ID, encoded value, associated event ID).
Link QR codes to events for promotional scanning.
Provide getters and setters for QR code fields.
Event

Image

Image
Responsibilities Collaborators
Store image metadata (image ID, event ID, URI, uploader ID).
Support both event posters and general images.
Provide getters and setters for image fields.
Event
User

GeoLocation

GeoLocation
Responsibilities Collaborators
Store geolocation data (latitude, longitude, timestamp, user ID, event ID).
Track user location when joining event waiting lists.
Provide getters and setters for geolocation fields.
User
Event

Chat

Chat
Responsibilities Collaborators
Store group chat information (chat ID, event ID, event name, member IDs).
Track chat creation date and last message timestamp.
Maintain last read timestamps per user for unread message tracking.
Provide getters and setters for chat fields.
Event
User
Message

Message

Message
Responsibilities Collaborators
Store message content (message ID, chat ID, sender ID, sender name, text, timestamp).
Link messages to chats for group communication.
Provide getters and setters for message fields.
Chat
User

RegistrationHistory

RegistrationHistory
Responsibilities Collaborators
Store registration history entries (event ID, user ID, status, registration date).
Track user registration status (WAITLIST, SELECTED, CONFIRMED, CANCELLED).
Provide getters and setters for registration history fields.
Event
User

AdminActionLog

AdminActionLog
Responsibilities Collaborators
Store immutable audit log entries for admin actions.
Record action kind (EVENT, PROFILE, IMAGE), target ID, timestamp, actor device ID, and optional note.
Provide read-only access to audit log fields.
User
Event
Image

UserSummary

UserSummary
Responsibilities Collaborators
Store minimal user profile summary for admin browsing (user ID, name, username, email).
Provide lightweight user representation for list views.
Provide getters and setters for summary fields.
User

DeviceIdManager

DeviceIdManager
Responsibilities Collaborators
Generate and store unique device IDs using UUID.
Persist device IDs in SharedPreferences for reuse across app launches.
Provide methods to get or create device ID.
Support device ID reset for full reset scenarios.
User

Services

EventService

EventService
Responsibilities Collaborators
Validate and save new events (requires title).
Validate and update existing events.
Delete events and send notifications to affected users.
Retrieve events by ID or get all events (sync and async).
Send notifications when events are updated or deleted by organizer.
Enforce business logic and validation rules.
EventRepository
NotificationService
UserService
Event
Notification
User

UserService

UserService
Responsibilities Collaborators
Create users with validation (name, email, phone) and uniqueness checks.
Update user profiles with validation.
Delete user profiles and cleanup associated data (events, registration histories).
Authenticate users by email/username and password or device ID.
Get current user by device ID (sync and async).
Get user by ID or get all users.
Attach device ID to current user for session management.
Validate email format and name requirements.
Manage user registration histories.
UserRepository
DeviceIdManager
EventService
RegistrationHistoryService
User
Event
RegistrationHistory

NotificationService

NotificationService
Responsibilities Collaborators
Save notifications with validation and respect user notification preferences.
Update and delete notifications.
Mark notifications as read and update badge counts.
Retrieve notifications by ID, recipient ID, or get all notifications.
Get unread notifications for a recipient.
Create notification channel and show system notifications.
Update app icon badge counts when notifications are saved or marked read.
NotificationRepository
BadgeService
UserService
Notification
User

QRCodeService

QRCodeService
Responsibilities Collaborators
Validate and save QR codes (requires value and event ID).
Validate and update existing QR codes.
Delete QR codes by ID.
Retrieve QR codes by ID, event ID, or get all QR codes.
Enforce business logic and validation rules.
QRCodeRepository
QRCode

ImageService

ImageService
Responsibilities Collaborators
Validate and save images (requires URI).
Validate and update existing images.
Delete images by ID or by event ID (bulk deletion).
Retrieve images by ID or get all images.
Enforce business logic and validation rules.
ImageRepository
Image

GeoLocationService

GeoLocationService
Responsibilities Collaborators
Validate and save geolocations (validates coordinate ranges).
Validate and update existing geolocations.
Delete geolocations by user ID and event ID.
Retrieve geolocations by user ID, event ID, or combinations.
Validate latitude (-90 to 90) and longitude (-180 to 180) ranges.
GeoLocationRepository
GeoLocation

LotteryResultService

LotteryResultService
Responsibilities Collaborators
Run lottery drawings from waiting list with random selection.
Update registration histories to SELECTED status.
Sync event lists (remove from waiting, add to selected).
Save lottery results and create group chats for events.
Send lottery win notifications to selected entrants.
Refill canceled slots by drawing replacements from waiting list.
Retrieve lottery results by event ID or timestamp.
Delete lottery results.
LotteryResultRepository
RegistrationHistoryService
EventService
NotificationService
UserService
ChatService
LotteryResult
Event
RegistrationHistory
Notification

AdminService

AdminService
Responsibilities Collaborators
Remove events after confirmation with notifications to affected users and organizer.
Remove user profiles after confirmation with cleanup.
Remove images after confirmation with notifications to organizer if event poster.
List all events, profiles, and images for admin browsing.
Log all admin actions to audit log.
Send notifications when admin deletes events or removes images.
EventService
ImageService
UserService
UserRepository
AdminLogRepository
NotificationService
RegistrationHistoryService
DeviceIdManager
Event
Image
User
AdminActionLog
Notification

ChatService

ChatService
Responsibilities Collaborators
Create group chats for events when lottery is drawn (with organizer as initial member).
Add users to chats when they accept lottery invitations.
Send messages to chats and update last message timestamp.
Send notifications to chat members when new messages arrive (excluding sender).
Get chats by event ID or chat ID (sync and async).
Get all chats for a user (where user is a member).
Get messages for a chat (sync and async).
Set up real-time listeners for messages in chats.
Mark messages as read and update last read timestamps.
Calculate unread message counts per chat and total across all chats.
ChatRepository
MessageRepository
UserService
NotificationService
Chat
Message
User
Notification

LoginService

LoginService
Responsibilities Collaborators
Authenticate users by email/username and password (sync and async).
Authenticate users by device ID (sync and async).
Manage login state and cache current user reference.
Logout users (clears cached reference).
Check if user has active session.
Attach device ID to current user for session management.
UserService
User

RegistrationHistoryService

RegistrationHistoryService
Responsibilities Collaborators
Validate and save registration histories (requires status and registration date).
Validate and update existing registration histories.
Delete registration histories by event ID and user ID.
Retrieve registration histories by event ID, user ID, or combinations.
Get all registration histories.
Enforce business logic and validation rules.
RegistrationHistoryRepository
RegistrationHistory

BadgeService

BadgeService
Responsibilities Collaborators
Update app icon badge count with unread notifications and messages.
Set badge count using ShortcutBadger and system notifications.
Clear badge when no unread items.
Get unread notification count for a user (sync and async).
Get unread message count for a user (async).
Create badge notification channel.
Post system badge notification for Samsung/Android 8+ compatibility.
NotificationService
UserService
ChatService
Notification
User

ServiceLocator

ServiceLocator
Responsibilities Collaborators
Provide lazy initialization and singleton-like access to all services.
Manage service instances with application context to avoid memory leaks.
Provide methods to get or create service instances.
Support service replacement for testing/mocking.
UserService
LoginService
AdminService
EventService
ImageService
NotificationService
RegistrationHistoryService
GeoLocationService
LotteryResultService
QRCodeService
ChatService
DeviceIdManager

Repositories

FireBaseRepository

FireBaseRepository
Responsibilities Collaborators
Initialize Firebase Firestore instance.
Provide collection references for all entity types (Users, Events, Images, Notifications, etc.).
Centralize Firebase configuration and collection names.
FirebaseFirestore
CollectionReference

EventRepository

EventRepository
Responsibilities Collaborators
Perform CRUD operations on Events in Firestore (Create, Read, Update, Delete).
Get event by ID (sync and async).
Get all events (sync and async).
Save, update, and delete events in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
Event

UserRepository

UserRepository
Responsibilities Collaborators
Perform CRUD operations on Users in Firestore.
Get user by ID or device ID (sync and async).
Get all users (sync and async).
Save, update, and delete users in Firestore.
Check profile uniqueness (username and email).
Handle Firestore SDK details and data conversion.
FireBaseRepository
User

NotificationRepository

NotificationRepository
Responsibilities Collaborators
Perform CRUD operations on Notifications in Firestore.
Get notification by ID (sync and async).
Get notifications by recipient ID (sync and async).
Get unread notifications by recipient ID.
Save, update, and delete notifications in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
Notification

QRCodeRepository

QRCodeRepository
Responsibilities Collaborators
Perform CRUD operations on QR Codes in Firestore.
Get QR code by ID (sync and async).
Get QR codes by event ID.
Get all QR codes.
Save, update, and delete QR codes in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
QRCode

ImageRepository

ImageRepository
Responsibilities Collaborators
Perform CRUD operations on Images in Firestore.
Get image by ID (sync and async).
Get all images.
Get images by event ID.
Save, update, and delete images in Firestore.
Delete images by event ID (bulk deletion).
Handle Firestore SDK details and data conversion.
FireBaseRepository
Image

GeoLocationRepository

GeoLocationRepository
Responsibilities Collaborators
Perform CRUD operations on Geolocations in Firestore.
Get geolocation by user ID and event ID (sync and async).
Get geolocations by event ID, user ID, or combinations.
Get all geolocations.
Save, update, and delete geolocations in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
GeoLocation

LotteryResultRepository

LotteryResultRepository
Responsibilities Collaborators
Perform CRUD operations on Lottery Results in Firestore.
Get lottery result by timestamp and event ID.
Get lottery results by event ID.
Get all lottery results.
Save and delete lottery results in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
LotteryResult

RegistrationHistoryRepository

RegistrationHistoryRepository
Responsibilities Collaborators
Perform CRUD operations on Registration Histories in Firestore.
Get registration history by event ID and user ID (sync and async).
Get registration histories by event ID or user ID.
Get all registration histories.
Save, update, and delete registration histories in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
RegistrationHistory

ChatRepository

ChatRepository
Responsibilities Collaborators
Perform CRUD operations on Chats in Firestore.
Get chat by ID or event ID (sync and async).
Get chats by user ID (where user is a member).
Save and update chats in Firestore.
Handle Firestore SDK details and data conversion.
FireBaseRepository
Chat

MessageRepository

MessageRepository
Responsibilities Collaborators
Perform CRUD operations on Messages in Firestore.
Get messages by chat ID (sync and async).
Save messages in Firestore.
Set up real-time listeners for messages in chats.
Handle Firestore SDK details and data conversion.
FireBaseRepository
Message

AdminLogRepository

AdminLogRepository
Responsibilities Collaborators
Append admin action logs to audit trail.
Store immutable audit entries for admin actions.
Handle audit log persistence.
FireBaseRepository
AdminActionLog

ProfilesRepository

ProfilesRepository
Responsibilities Collaborators
Manage admin-side index of user profiles for browsing.
List all user profiles (UserSummary objects).
Save or replace user summaries in local storage (SharedPreferences).
Handle JSON serialization/deserialization of profiles.
UserSummary
SharedPreferences

UI Components

Activities

MainActivity

MainActivity
Responsibilities Collaborators
Serve as primary navigation hub for the application.
Manage navigation drawer and fragment switching.
Handle user authentication state and redirect to login if needed.
Support both admin and entrant user roles with different menu options.
Update app icon badge counts.
Request notification permissions for Android 13+.
Navigate to different fragments based on menu selection.
LoginService
UserService
BadgeService
DeviceIdManager
All UI Fragments

LoginActivity

LoginActivity
Responsibilities Collaborators
Handle user login with email/username and password.
Support "Remember Me" functionality.
Navigate to MainActivity on successful login.
Show error messages for invalid credentials.
Handle device-based authentication.
LoginService
UserService

SignUpActivity

SignUpActivity
Responsibilities Collaborators
Handle user registration with validation.
Check username and email uniqueness.
Navigate to MainActivity on successful signup.
Show error messages for validation failures or duplicate credentials.
UserService

SplashActivity

SplashActivity
Responsibilities Collaborators
Check if user is logged in on app startup.
Attempt device-based authentication.
Navigate to MainActivity if logged in, LoginActivity if not.
Handle cold start authentication flow.
LoginService
DeviceIdManager

EditProfileActivity

EditProfileActivity
Responsibilities Collaborators
Display and edit user profile information (name, email, phone).
Validate input before saving.
Update user profile via UserService.
Show success/error messages.
Navigate back on successful update.
UserService
User

AdminDashboardActivity

AdminDashboardActivity
Responsibilities Collaborators
Provide admin navigation hub.
Manage admin-specific fragments and navigation.
Display admin dashboard with access to all admin features.
AdminService
All Admin Fragments

ManageEventsActivity

ManageEventsActivity
Responsibilities Collaborators
Display list of events for admin management.
Allow admin to browse and manage events.
Navigate to event management fragments.
AdminService
EventService

ManageProfilesActivity

ManageProfilesActivity
Responsibilities Collaborators
Display list of user profiles for admin management.
Allow admin to browse and manage profiles.
Navigate to profile management fragments.
AdminService
UserService

ManageImagesActivity

ManageImagesActivity
Responsibilities Collaborators
Display list of images for admin management.
Allow admin to browse and manage images.
Navigate to image management fragments.
AdminService
ImageService

ManageNotificationsActivity

ManageNotificationsActivity
Responsibilities Collaborators
Display notification logs for admin review.
Allow admin to browse sent notifications.
Navigate to notification browsing fragments.
AdminService
NotificationService

ManageEventInfoHostActivity

ManageEventInfoHostActivity
Responsibilities Collaborators
Host viewpager for managing event information tabs.
Display different views (list, user details) for event management.
Navigate between event info management fragments.
EventService
ManageEventInfoPagerAdapter

Fragments

BrowseEventsFragment

BrowseEventsFragment
Responsibilities Collaborators
Display all available events for browsing.
Allow users to filter and search events.
Handle event selection and navigation to event details.
Show event posters and basic information.
Support swipe-to-refresh for event list updates.
EventService
ImageService
BrowseEventsAdapter
ViewEventDetailsFragment

MyEventFragment

MyEventFragment
Responsibilities Collaborators
Display user's registered events organized by status (Waiting, Selected, Confirmed, Past).
Allow users to accept/decline lottery invitations.
Allow users to leave waiting lists.
Navigate to event details.
Show empty states for each tab.
EventService
RegistrationHistoryService
LotteryResultService
MyEventsAdapter
MyEventsViewModel

SingleEventFragment

SingleEventFragment
Responsibilities Collaborators
Display detailed view of a single event.
Show event poster, description, dates, location, cost.
Allow users to join or leave waiting list.
Show current waiting list count.
Handle geolocation requirement validation.
EventService
ImageService
GeoLocationService
RegistrationHistoryService

ViewEventDetailsFragment

ViewEventDetailsFragment
Responsibilities Collaborators
Display comprehensive event details.
Show event poster, full description, all dates, location, cost, capacity.
Display waiting list, selected, and confirmed lists.
Allow navigation to related features (QR code scanning, chat).
EventService
ImageService
UserService

CreateEventFragment

CreateEventFragment
Responsibilities Collaborators
Allow organizers to create new events.
Collect event details (title, description, dates, location, cost, capacity).
Handle poster image upload.
Generate QR code for event.
Validate event creation form.
Save event via EventService.
EventService
ImageService
QRCodeService
UserService

ManageEventsFragment

ManageEventsFragment
Responsibilities Collaborators
Display list of events organized by current user.
Show total event count.
Allow organizers to show QR code, manage event info, or delete events.
Navigate to event management screens.
Handle event deletion with confirmation.
EventService
QRCodeService
RegistrationHistoryService
NotificationService
ManageEventsAdapter

ManageEventInfoFragment

ManageEventInfoFragment
Responsibilities Collaborators
Allow organizers to edit event information.
Update event details (title, description, dates, location, cost, capacity).
Update event poster image.
Handle geolocation requirement toggle.
Save changes via EventService.
EventService
ImageService
UserService

ManageEventInfoListFragment

ManageEventInfoListFragment
Responsibilities Collaborators
Display list of entrants for an event (waiting, selected, confirmed, cancelled).
Show entrant details and registration status.
Allow organizers to view entrant information.
Support filtering by status.
EventService
UserService
RegistrationHistoryService
ManageEventInfoUserAdapter

ProfileFragment

ProfileFragment
Responsibilities Collaborators
Display current user's profile information.
Show registration history and lottery outcomes.
Allow navigation to edit profile.
Display notification preferences.
Allow users to delete their profile.
UserService
RegistrationHistoryService
EventService

NotificationCenterFragment

NotificationCenterFragment
Responsibilities Collaborators
Display all notifications for current user.
Show unread badge count.
Allow users to mark notifications as read.
Support swipe-to-refresh for notification updates.
Navigate to related events when notification is clicked.
Show empty state when no notifications.
NotificationService
UserService
EventService
BadgeService
NotificationCenterAdapter

ScanQRCodeFragment

ScanQRCodeFragment
Responsibilities Collaborators
Scan QR codes using device camera.
Decode QR code values and retrieve associated event.
Navigate to event details when QR code is scanned.
Handle camera permissions.
Show quick access to recently scanned events.
QRCodeService
EventService
QRQuickAccessAdapter

ChatFragment

ChatFragment
Responsibilities Collaborators
Display messages for a specific chat.
Allow users to send messages.
Show real-time message updates.
Mark messages as read when viewed.
Display sender names and timestamps.
Show unread message indicators.
ChatService
UserService
MessageAdapter

MessagesFragment

MessagesFragment
Responsibilities Collaborators
Display list of all chats for current user.
Show chat names (event names), last message preview, and timestamps.
Show unread message counts per chat.
Navigate to individual chat when clicked.
Show empty state when no chats.
ChatService
UserService
ChatListAdapter

AdminBrowseEventsFragment

AdminBrowseEventsFragment
Responsibilities Collaborators
Display list of all events for admin browsing.
Allow admin to filter and search events.
Navigate to event deletion with confirmation.
Show event details in list view.
AdminService
EventService
AdminEventAdapter

AdminBrowseProfilesFragment

AdminBrowseProfilesFragment
Responsibilities Collaborators
Display list of all user profiles for admin browsing.
Allow admin to filter and search profiles.
Navigate to profile deletion with confirmation.
Show user summary information.
AdminService
UserService
AdminProfileAdapter

AdminBrowseOrganizersFragment

AdminBrowseOrganizersFragment
Responsibilities Collaborators
Display list of all organizers for admin browsing.
Allow admin to filter and search organizers.
Navigate to organizer profile management.
Show organizer summary information.
AdminService
UserService
ProfileAdapter

AdminBrowseImagesFragment

AdminBrowseImagesFragment
Responsibilities Collaborators
Display list of all uploaded images for admin browsing.
Show image previews.
Allow admin to filter and search images.
Navigate to image deletion with confirmation.
Show image metadata (event ID, uploader).
AdminService
ImageService
AdminImageAdapter

AdminBrowseNotificationsFragment

AdminBrowseNotificationsFragment
Responsibilities Collaborators
Display notification logs for admin review.
Show all sent notifications with sender, recipient, type, timestamp.
Allow admin to filter notifications.
Show notification details and content.
AdminService
NotificationService
NotificationAdapter

Adapters

BrowseEventsAdapter

BrowseEventsAdapter
Responsibilities Collaborators
Bind event data to RecyclerView items for browsing.
Display event posters, titles, dates, and basic info.
Handle item click events to navigate to event details.
Load and display event images.
Event
Image
ImageService

MyEventsAdapter

MyEventsAdapter
Responsibilities Collaborators
Bind user's events to RecyclerView items organized by status.
Display event information and current status.
Handle accept/decline actions for lottery invitations.
Handle leave waiting list actions.
Navigate to event details on click.
Event
RegistrationHistory
EventService
RegistrationHistoryService

ManageEventsAdapter

ManageEventsAdapter
Responsibilities Collaborators
Bind organizer's events to RecyclerView items.
Display event information and management options.
Handle QR code display, event info management, and event deletion actions.
Navigate to management screens.
Event
EventService
QRCodeService

ManageEventInfoUserAdapter

ManageEventInfoUserAdapter
Responsibilities Collaborators
Bind entrant data to RecyclerView items for event management.
Display entrant names, emails, and registration status.
Show entrant information organized by status (waiting, selected, confirmed, cancelled).
User
RegistrationHistory
UserService

NotificationCenterAdapter

NotificationCenterAdapter
Responsibilities Collaborators
Bind notifications to RecyclerView items.
Display notification type, status, details, and timestamp.
Show read/unread indicators.
Handle notification click to navigate to related event.
Handle mark as read actions.
Notification
Event
NotificationService
EventService

MessageAdapter

MessageAdapter
Responsibilities Collaborators
Bind messages to RecyclerView items for chat display.
Display message text, sender name, and timestamp.
Show message alignment based on sender (current user vs others).
Handle real-time message updates.
Message
User

ChatListAdapter

ChatListAdapter
Responsibilities Collaborators
Bind chats to RecyclerView items for messages list.
Display chat name (event name), last message preview, and timestamp.
Show unread message counts.
Handle chat click to navigate to chat fragment.
Chat
Message
ChatService

QRQuickAccessAdapter

QRQuickAccessAdapter
Responsibilities Collaborators
Bind recently scanned events to RecyclerView items.
Display quick access to events scanned via QR codes.
Handle item click to navigate to event details.
Event
QRCode

AdminEventAdapter

AdminEventAdapter
Responsibilities Collaborators
Bind events to RecyclerView items for admin browsing.
Display event information for admin review.
Handle event deletion actions with confirmation.
Event
AdminService

AdminProfileAdapter

AdminProfileAdapter
Responsibilities Collaborators
Bind user profiles to RecyclerView items for admin browsing.
Display user summary information (name, username, email).
Handle profile deletion actions with confirmation.
UserSummary
AdminService

AdminImageAdapter

AdminImageAdapter
Responsibilities Collaborators
Bind images to RecyclerView items for admin browsing.
Display image previews and metadata.
Handle image deletion actions with confirmation.
Image
AdminService

NotificationAdapter

NotificationAdapter
Responsibilities Collaborators
Bind notifications to RecyclerView items for admin review.
Display notification details (sender, recipient, type, content, timestamp).
Show notification logs for audit purposes.
Notification
User

ProfileAdapter

ProfileAdapter
Responsibilities Collaborators
Bind user profiles to RecyclerView items.
Display user summary information.
Handle profile selection and navigation.
UserSummary
User

EventAdapter

EventAdapter
Responsibilities Collaborators
Bind events to RecyclerView items.
Display event information in list format.
Handle event selection and navigation.
Event
Image

ImageAdapter

ImageAdapter
Responsibilities Collaborators
Bind images to RecyclerView items.
Display image previews and metadata.
Handle image selection.
Image

ManageEventInfoPagerAdapter

ManageEventInfoPagerAdapter
Responsibilities Collaborators
Manage ViewPager tabs for event information management.
Switch between list view and user details view.
Handle fragment lifecycle for pager tabs.
ManageEventInfoListFragment
ManageEventInfoFragment

ViewModels

MyEventsViewModel

MyEventsViewModel
Responsibilities Collaborators
Manage UI state for MyEventFragment.
Load user's events organized by status.
Provide LiveData for events in each status category.
Handle background data loading.
Update UI when events change.
EventService
RegistrationHistoryService
UserService
Event
RegistrationHistory

AdminEventsViewModel

AdminEventsViewModel
Responsibilities Collaborators
Manage UI state for admin event browsing.
Load all events for admin review.
Provide LiveData for events list.
Handle filtering and searching.
Update UI when events change.
AdminService
EventService
Event

Other Components

App

App
Responsibilities Collaborators
Application class that provides global ServiceLocator instance.
Initialize application-wide services.
Provide access to ServiceLocator for activities and fragments.
ServiceLocator

constant

constant
Responsibilities Collaborators
Define constant values used throughout the application.
Store collection names for Firestore.
Define enums for EventStatus, UserRole, NotificationType, EventRegistrationStatus.
Provide centralized constant definitions.
All Classes

⚠️ **GitHub.com Fallback** ⚠️