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 |