CRC Cards - CMPUT301F25quanti/quanti-agents GitHub Wiki
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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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 |
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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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 |
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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| Responsibilities | Collaborators |
|---|---|
| Append admin action logs to audit trail. Store immutable audit entries for admin actions. Handle audit log persistence. |
FireBaseRepository AdminActionLog |
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 |
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
| 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
| 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
| 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
| 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
| 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
| Responsibilities | Collaborators |
|---|---|
| Display list of events for admin management. Allow admin to browse and manage events. Navigate to event management fragments. |
AdminService EventService |
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
| Responsibilities | Collaborators |
|---|---|
| Display list of images for admin management. Allow admin to browse and manage images. Navigate to image management fragments. |
AdminService ImageService |
ManageNotificationsActivity
| Responsibilities | Collaborators |
|---|---|
| Display notification logs for admin review. Allow admin to browse sent notifications. Navigate to notification browsing fragments. |
AdminService NotificationService |
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 |
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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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 |
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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| Responsibilities | Collaborators |
|---|---|
| Bind images to RecyclerView items for admin browsing. Display image previews and metadata. Handle image deletion actions with confirmation. |
Image AdminService |
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
| Responsibilities | Collaborators |
|---|---|
| Bind user profiles to RecyclerView items. Display user summary information. Handle profile selection and navigation. |
UserSummary User |
EventAdapter
| Responsibilities | Collaborators |
|---|---|
| Bind events to RecyclerView items. Display event information in list format. Handle event selection and navigation. |
Event Image |
ImageAdapter
| Responsibilities | Collaborators |
|---|---|
| Bind images to RecyclerView items. Display image previews and metadata. Handle image selection. |
Image |
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 |
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
| 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 |
App
| Responsibilities | Collaborators |
|---|---|
| Application class that provides global ServiceLocator instance. Initialize application-wide services. Provide access to ServiceLocator for activities and fragments. |
ServiceLocator |
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 |