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) |