Part 2: CRC Cards - junimo301/junimo-project GitHub Wiki

MainActivity

Responsibilities Collaborators
Handle initial app launching and Firestore user creation FirebaseManager
Role selection (Entrant/User, Organizer, Admin) UserHomeActivity
OrganizerStartScreen
AdminHomeActivity

UserHomeActivity

Responsibilities Collaborators
Main page for navigation for entrants/users ProfileActivity
Allow access to event listings, invitations and guidelines Invitations Activity
EventDetailsActivity

ProfileActivity

Responsibilities Collaborators
Allow user to view/update their profile info FirebaseManager
Saves updated profile info to the Firestore DeviceUtils

InvitationsActivity

Responsibilities Collaborators
Get and display list of event invitations for the user FirebaseManager
Handle accepting/declining invitations, updating Firestore InvitationAdapter

EventDetailsActivity

Responsibilities Collaborators
Display info about an event FirebaseManager
Allow user to join/leave event's waitlist UserSession

GuidelinesActivity

Responsibilities Collaborators
Display app's policies to the user (N/A)

OrganizerStartScreen

Responsibilities Collaborators
Main page/navigation screen for organizers CreateEvent
Display events created by the organizer SelectAnEvent
ListOfMyEvents

CreateEvent

Responsibilities Collaborators
Makes a form for creating/editing an event's details FirebaseManager
Handle image selection for event poster (WIP) EventPreview
Save new/updated event to the Firestore EventData

SelectAnEvent

Responsibilities Collaborators
Display list of organizer's events to choose from EventData
Navigate to Entrants view for selected event Entrants

Entrants

Responsibilities Collaborators
Display list of invited/cancelled/enrolled entrants for the event FirebaseManager
Fetch entrant data from Firestore EventData

EventPreview

Responsibilities Collaborators
Show preview of how event will look before it's created CreateEvent

ListOfMyEvents

Responsibilities Collaborators
Adapt list of Event objects for display on organizer home screen OrganizerStartScreen
Handle clicks for creating an event (launch CreateEvent) CreateEvent

EventData

Responsibilities Collaborators
Temporary in-memory cache for event data CreateEvent
Has static methods for local event search/retrieval SelectAnEvent

AdminHomeActivity

Responsibilities Collaborators
Navigation to all admin functions AdminBrowseProfilesActivity
AdminBrowseEventsActivity
AdminBrowseOrganizersActivity

AdminBrowseProfilesActivity

Responsibilities Collaborators
Fetch/display all user profiles FirebaseManager
Handle user deletion and searching AdminUserAdapter

AdminBrowseOrganizersActivity

Responsibilities Collaborators
Fetch/display all users w/ organizer flag FirebaseManager
Handle organizer demotion of deletion of their events AdminOrganizerAdapter

AdminBrowseEventsActivity

Responsibilities Collaborators
Fetch/display all events FirebaseManager
Handle event deletion AdminEventAdapter

AdminUserAdapter

Responsibilities Collaborators
Adapt user data for profiles list display AdminBrowseProfilesActivity

AdminOrganizerAdapter

Responsibilities Collaborators
Adapt user data for organizer list display AdminBrowseOrganizersActivity

AdminEventAdapter

Responsibilities Collaborators
Adapt event data for event list display AdminBrowseEventsActivity

User

Responsibilities Collaborators
Models a user, storing profile info/role flags FirebaseManager

Event

Responsibilities Collaborators
Models an event, storing event details FirebaseManager

InvitationItem

Responsibilities Collaborators
Models an invitaion for display InvitationAdapter

WaitList

Responsibilities Collaborators
Models a waitlist, holding a list of Users Event
Populates itself using Firestore data FirebaseManager

UserSession

Repsonsibilities Collaborators
Holds a reference to the current user MainActivity

FirebaseManager

Responsibilities Collaborators
Singleton instance of the Firestore database (Most activities)
Has helper methods for adding/updating/deleting documents

DeviceUtils

Responsibilities Collaborators
Has static method for retrieving device ID (Most activities)