Rent Bike Use Case

Subordinate Use Cases

Customers have the option to browse or search the database at a customer kiosk to select available bike(s) for rental and specify the rental period for each of the selected bikes. Alternatively, they can have an employee of the bike shop browse or search the database, make customer suggestions with which the customer can agree or disagree, and record the respective rental periods. The selected bikes are then physically examined by an employee to ensure their suitability for rental. If any bikes are unsuitable, they are marked for repair (see Update Bike use case) and alternative bike selections are made by either the customer or employee. Then the system will display to the employee any special discounts that might apply to frequent customers. The employee informs the customer of the final price (including all bike rates, rental durations, rental deposits and discounts) for all bikes rented, accepts the payment for the rental and authorizes the rental. The employee will check out the bikes by either associating the bike(s) with the pre-existing customer record, or by creating a new customer record and then associating that record with the bike(s). A receipt will be printed for the customer which lists the details and cost of each bike rental. A rental request may be cancelled at any time during this process, up until the bikes are associated with the customer. After that, the Return Bike use case will apply.

Primary Flow "Typical rental" (consists of subordinate use cases)

  1. Employee Selects Bikes
  2. Employee Selects Customer
  3. Employee Confirms Reservation

Alternate Flow "Customer selects bikes rental" (consists of subordinate use cases)

  1. Customer Selects Bikes
  2. Employee Selects Rental Log
  3. Employee Selects Customer
  4. Employee Confirms Reservation

Alternate Flow "Cancellation after bike selection" (consists of subordinate use cases)

  1. Employee Selects Bikes
  2. Cancel Reservation

Alternate Flow "Cancellation after bike selection" (consists of subordinate use cases)

  1. Customer Selects
  2. Cancel Reservation

Alternate Flow "Cancellation after rental log selection" (consists of subordinate use cases)

  1. Customer Selects Bikes
  2. Employee Selects Rental Log
  3. Cancel Reservation

Alternate Flow "Cancellation after customer selection" (consists of subordinate use cases)

  1. Employee Select Bikes
  2. Employee Selects Customer
  3. Cancel Reservation

Alternate Flow "Cancellation after customer selection" (consists of subordinate use cases)

  1. Customer Select Bikes
  2. Employee Selects Rental Log
  3. Employee Selects Customer
  4. Cancel Reservation

Select Bikes Use Case

Bikes may be selected from either a Customer Console or an Employee Console. Users search for bikes by parameters or browse by category. Users select bikes and enter in the rental dates for which they would like to have this particular bike. Users may select multiple bikes across multiple searches before confirming the selections and durations for those selections. Once the user is finished, a summary of their selections will be displayed at which point the selections can be finalized. After the user has confirmed their selections, a Rental Log is created (See Create Rental Log Use Case). If this bike selection was done at a Customer Console, the Rental Log number will be displayed to the customer and wait for confirmation that they’ve seen it. After they confirm it, the Rental Log will be sent to the Employee Console, so the employee knows a customer is ready to be helped. If this bike selection was done at the Employee Console, then the customer is already being helped.

Note: "Browsing" is type of search based on using categories as parameters.

Primary Flow "Employee selects bikes for customer"

  1. Employee enters in search parameters to the employee console for the customer
  2. The system will use the search parameters to query the database for all bikes matching the parameters.
  3. The employee console will display the results of the search to the employee
  4. The employee will select bike(s) and add rental data for each bike selected
  5. The system will keep track of all selected bikes
  6. Employee may optionally perform more search & select operations adding to this list of bikes
  7. Employee will finalize the selections and rental dates
  8. The system will create a rental log consisting of the bikes and rental data

Alternate Flow: "Customer selects bikes prior to approaching employee"

  1. The Customer enters in search parameters to the customer console
  2. The system will use the search parameters to query the database for all bikes matching the parameters
  3. The customer console will display the results of the search to the customer
  4. The customer will select bike(s) and add rental data for each bike selected
  5. The system will keep track of all selected bikes
  6. Customer may optionally perform more search & select operations adding to this list of bikes
  7. Customer will finalize all selections and rental dates
  8. The system will create a rental log consisting of the bikes and rental data (per Create Rental Log Use Case)
  9. The customer console will display the rental log number and wait for customer acknowledgement of the number
  10. The rental log will be sent to the employee console to alert an employee to a ready customer.

Create Rental Log Use Case

A Rental Log will be created for a provided list of bikes and associated rental dates for those bikes. This preliminary Rental Log does not yet contain customer information. This will also cause the bikes to go into a "reserved" state so that no other customer will see these bikes as available. The incomplete Rental Log will be returned.

Primary Flow "Creates a rental log"

  1. After a user enters bike and rental data the system will create a preliminary rental log, which contains no customer information yet
  2. The system will ensure that all bikes involved are put into a "reserved" state so they are unavailable to be selected by other users

Select Rental Log Use Case

A Rental Log will be selected from a list of provided logs on the Employee Console, or the selected Rental Log will be the log the Employee has created on the Employee console himself. The Rental Log that is selected will be completed or cancelled by the Employee at the Employee Console.

Primary Flow "Selects a rental log"

  1. A log is selected from a list of rental logs on the Employee Console.
  2. The log information is displayed on the Employee Console in a state where the log is ready to be updated with customer information.
  3. The selected log is removed from the list on all Employee Consoles

Select Customer Use Case

Customer selection will be done only at the Employee Console. If the customer is known to be a returning customer, or if they are possibly a returning customer, the employee will search for the customer by some set of parameters (last name, phone number, email, etc). Existing customers matching these parameters will be displayed and the employee should choose the correct one. If the correct customer is not found, the employee may do another search on different criteria. If the customer cannot be found or the customer is known to be a new customer, then the employee should create a new Customer by adding the new customer information. After the customer has been found or a new customer has been created, this customer should be selected for this rental log. If a Customer indicates that their information has changed, then the Employee may invoke the Update Customer Use Case.

Primary Flow "Customer is known to have rented before"

  1. The Employee will enter in parameters to find the Customer’s record
  2. The system will use the parameters to retrieve a list of customers that match the parameters entered
  3. The system will display the list of customers to the employee
  4. The Employee will select the correct Customer from the list of possibilities

Alternate Flow "Customer not found"

  1. The Employee will enter in parameters to find the Customer’s record
  2. The system will use the parameters to retrieve a list of customers that match the parameters entered
  3. The system will display the list of customers to the employee
  4. Employee will choose to search again by different parameters if the correct Customer record is not displayed

Note: This flow leads to either the "Customer is known to have rented before" flow or the "New customer" flow.

Alternate Flow "New customer"

  1. The Employee will choose to add a new customer
  2. The Employee will enter in all customer information
  3. The system will create a new customer using the provided information and return the newly created Customer for use in this rental

Confirm Reservation Use Case

The Rental Log provided will be updated to include the customer indicated. This will effectively associate the bikes in the log with the customer. This should also indicate discounts that the customer is available to receive as well as any "amount due" from previous rentals that was unpaid (See Return Bike Use Case - "Customer owes more money and cannot afford it"). The Rental Log should be displayed to the employee in full detail (bikes, customer, costs, discounts, etc). The employee should finalize this rental and approve the Rental Log with his employee ID and today’s date. The Rental Log should be updated and the Employee Console should indicate that this was successful. The approval should change the state of all bikes from "reserved" to "rented." A receipt should be printed for the customer indicating all information of transaction.

Primary Flow "The rental log is updated and confirmed"

  1. After the employee has selected or created a customer for this rental, the rental log that was created for the set of bikes and rental data will include the customer
  2. All applicable discounts as well as amounts due will be calculated and put on the rental log
  3. The employee console will display the final rental log (bikes, rental dates, customer info, cost breakdown, discounts, etc)
  4. The employee will finalize the rental after receiving payment
  5. The system will approve the rental log, change all bike statuses to "rented" and update the database.
  6. The system should print a receipt summarizing this rental log

Alternate Flow "The customer cannot pay for the rentals"

  1. After the employee has selected or created a customer for this rental, the rental log that was created for the set of bikes and rental data will include the customer
  2. All applicable discounts as well as amounts due will be calculated and put on the rental log
  3. The employee console will display the final rental log (bikes, rental dates, customer info, cost breakdown, discounts, etc)
  4. The customer cannot pay for the rentals due to lack of cash, or credit card refusal.
  5. The employee cancels the reservations (see Cancel Reservation Use Case).

Alternate Flow "The customer changes their mind about selected bikes"

  1. After the employee has selected or created a customer for this rental, the rental log that was created for the set of bikes and rental data will include the customer
  2. All applicable discounts as well as amounts due will be calculated and put on the rental log
  3. The employee console will display the final rental log (bikes, rental dates, customer info, cost breakdown, discounts, etc)
  4. The customer decides to alter the bikes they are renting.
  5. The employee cancels the reservations (see Cancel Reservation Use Case).
  6. A new request is created and the process starts over from the beginning (see Rent Bikes / Select Bikes Use Case).

Cancel Reservation Use Case

If after bikes have been selected for reservation and a rental log has been created and before the reservation has been confirmed, the customer wishes to cancel the rental, the employee console should cancel the rental log and refresh and all bikes included in the rental log should have their statuses changed from "reserved" to "available."

Primary Flow "Cancel Reservation"

  1. While viewing the rental log on the Employee’s console, the employee cancels the reservation by pressing the Cancel button.
  2. All bikes involved in the rental log should be made "available"
  3. he rental log should be updated to reflect that it was a "cancelled" log
  4. The employee observes that the cancellation was successful.