Rent Bike Use Case
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)
- Employee Selects Bikes
- Employee Selects Customer
- Employee Confirms Reservation
Alternate Flow "Customer selects bikes rental" (consists of subordinate use cases)
- Customer Selects Bikes
- Employee Selects Rental Log
- Employee Selects Customer
- Employee Confirms Reservation
Alternate Flow "Cancellation after bike selection" (consists of subordinate use cases)
- Employee Selects Bikes
- Cancel Reservation
Alternate Flow "Cancellation after bike selection" (consists of subordinate use cases)
- Customer Selects
- Cancel Reservation
Alternate Flow "Cancellation after rental log selection" (consists of subordinate use cases)
- Customer Selects Bikes
- Employee Selects Rental Log
- Cancel Reservation
Alternate Flow "Cancellation after customer selection" (consists of subordinate use cases)
- Employee Select Bikes
- Employee Selects Customer
- Cancel Reservation
Alternate Flow "Cancellation after customer selection" (consists of subordinate use cases)
- Customer Select Bikes
- Employee Selects Rental Log
- Employee Selects Customer
- Cancel Reservation
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"
- Employee enters in search parameters to the employee console for the customer
- The system will use the search parameters to query the database for all bikes matching the parameters.
- The employee console will display the results of the search to the employee
- The employee will select bike(s) and add rental data for each bike selected
- The system will keep track of all selected bikes
- Employee may optionally perform more search & select operations adding to this list of bikes
- Employee will finalize the selections and rental dates
- The system will create a rental log consisting of the bikes and rental data
Alternate Flow: "Customer selects bikes prior to approaching employee"
- The Customer enters in search parameters to the customer console
- The system will use the search parameters to query the database for all bikes matching the parameters
- The customer console will display the results of the search to the customer
- The customer will select bike(s) and add rental data for each bike selected
- The system will keep track of all selected bikes
- Customer may optionally perform more search & select operations adding to this list of bikes
- Customer will finalize all selections and rental dates
- The system will create a rental log consisting of the bikes and rental data (per Create Rental Log Use Case)
- The customer console will display the rental log number and wait for customer acknowledgement of the number
- The rental log will be sent to the employee console to alert an employee to a ready customer.
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"
- After a user enters bike and rental data the system will create a preliminary rental log, which contains no customer information yet
- The system will ensure that all bikes involved are put into a "reserved" state so they are unavailable to be selected by other users
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"
- A log is selected from a list of rental logs on the Employee Console.
- The log information is displayed on the Employee Console in a state where the log is ready to be updated with customer information.
- The selected log is removed from the list on all Employee Consoles
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"
- The Employee will enter in parameters to find the Customer’s record
- The system will use the parameters to retrieve a list of customers that match the parameters entered
- The system will display the list of customers to the employee
- The Employee will select the correct Customer from the list of possibilities
Alternate Flow "Customer not found"
- The Employee will enter in parameters to find the Customer’s record
- The system will use the parameters to retrieve a list of customers that match the parameters entered
- The system will display the list of customers to the employee
- 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"
- The Employee will choose to add a new customer
- The Employee will enter in all customer information
- The system will create a new customer using the provided information and return the newly created Customer for use in this rental
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"
- 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
- All applicable discounts as well as amounts due will be calculated and put on the rental log
- The employee console will display the final rental log (bikes, rental dates, customer info, cost breakdown, discounts, etc)
- The employee will finalize the rental after receiving payment
- The system will approve the rental log, change all bike statuses to "rented" and update the database.
- The system should print a receipt summarizing this rental log
Alternate Flow "The customer cannot pay for the rentals"
- 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
- All applicable discounts as well as amounts due will be calculated and put on the rental log
- The employee console will display the final rental log (bikes, rental dates, customer info, cost breakdown, discounts, etc)
- The customer cannot pay for the rentals due to lack of cash, or credit card refusal.
- The employee cancels the reservations (see Cancel Reservation Use Case).
Alternate Flow "The customer changes their mind about selected bikes"
- 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
- All applicable discounts as well as amounts due will be calculated and put on the rental log
- The employee console will display the final rental log (bikes, rental dates, customer info, cost breakdown, discounts, etc)
- The customer decides to alter the bikes they are renting.
- The employee cancels the reservations (see Cancel Reservation Use Case).
- A new request is created and the process starts over from the beginning (see Rent Bikes / Select Bikes 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"
- While viewing the rental log on the Employee’s console, the employee cancels the reservation by pressing the Cancel button.
- All bikes involved in the rental log should be made "available"
- he rental log should be updated to reflect that it was a "cancelled" log
- The employee observes that the cancellation was successful.