CRC Cards - rocket-cmput301/rocket-launch GitHub Wiki

Add CRC cards for each class.

  • Current iteration is just based on the Figma UI and User Stories.
  • Class names marked with asterisk (*) are proposed classes that may be refactored as the group wants / should expect to be updated very frequently during development
  • Responsibilities marked with a (+) at the beginning are related to the WOW Factors that haven't been confirmed yet

Category Template

Class Name

Responsibilities Collaborators
r1 c1
r2 c2
r3 c3

To Be Categorized

DashboardView*

Responsibilities Collaborators
Display all actions an Actor can do depending on their role User
Display the actor's role at the top of the screen

Actors

User

Responsibilities Collaborators
Storing a User's profile data User
Store/display user uploaded profile images Reservation
Store a list of a User's current Reservations
Store a User's past reservations (history)
(+) Allow a User to adjust their accessibility preferences

Host/Owner*

Responsibilities Collaborators
Hold a list of Campsites an Owner has posted Campsite
Allow Owners to make public postings of Campsites on the app

Site

Map

Responsibilities Collaborators
Provide a geographical layout of campsites relative to User location Campsite
Show highlighted paths for directions between Users and a particular Campsite User
(+) Display a User's current reservations in addition to the geographical layout

Campsite

Responsibilities Collaborators
Store/Display campsite capacity, tags, price, availability time, etc. Map
Store/Display campsite image Waitlist
Allow Users to join corresponding waitlist
Allow access to Campsite via QR code

CampsiteFilterController*

Responsibilities Collaborators
Allow Users to narrow down campsites using filters User
CampsiteDB
Campsite

CampsiteFilterView*

Responsibilities Collaborators
Displays filtered list of the Campsites CampsiteFilterController
Displays User's filters chosen at the top User
(+) Displays a Match Score calculated by a User's filters

CampsiteDB*

Responsibilities Collaborators
Store all current Campsites posted by Hosts Campsite
Associate Waitlist objects to corresponding Campsite objects Lottery

CampsiteDBConnector*

Responsibilities Collaborators
Connects to Firestore Database CampsiteDB

LotteryWaitlist*

Responsibilities Collaborators
Store a list of Users interested in a particular campsite User
Add and remove Users from the list Campsite
Only allow Users to join according to the time window established by the Host Host
Randomly choose Users from list when time window closes* Reservation

Reservation

Responsibilities Collaborators
Display info of a particular campsite reservation Campsite
Store status of reservation (Open, Closed, Confirmed) Lottery
Store associated User of the reservation User
Allow Users to download a .CSV file of the Reservation Host
(+) Allow Users to Contact the Host of a particular Reservation

Communication

ReviewThread

Responsibilities Collaborators
Allow Users to give a rating of a particular Campsite User
Allow Users to start threads / reply to a thread about a Campsite
(+) Allow Users to react in threads

HostChat*

Responsibilities Collaborators
Allow Users to communicate with Hosts User
Store chats with hosts for a particular User Host