Use Case Dec 6, 2020 - Hayoon-Heidi/FoodDeliveryApplication GitHub Wiki

Iteration #1

Log in, Log out feature

Who is the primary actor, the secondary actor (s)?

App User (Customer, Restaurant, Driver)

What are the actor’s goals?

Log in to access application functions

What preconditions should exist before the story begins?

Users must have been registered in the application system.

What main tasks or functions are performed by the actor?

Type their email and password

What extensions might be considered as the story is described?

If a user’s email and passwords match the registered information, successfully log in. The user provides the wrong email/password: login fails

What variations in the actor’s interaction are possible?

The user can register a new account or find her/his email/password.

What system information will the actor acquire, produce, or change?

The actor will be informed whether they entered the correct information or not.

Will the actor has to inform the system about changes in the external environment?

If their email has expired or they cannot access the email account: they need to answer security questions and change their email address.

What information does the actor desire from the system?

Whether they entered correct information or not.

Customer registration

Who is the primary actor, the secondary actor (s)?

Customer

What are the actor’s goals?

Register to the application system

What preconditions should exist before the story begins?

A user should have a valid email, a name, a phone number, and an address.

What main tasks or functions are performed by the actor?

Type their information above and make a valid password to register a new account.

What extensions might be considered as the story is described?

A user’s entry fails to match the expected format: they need to revise their entry. A user provides wrong information: they will have problems when they attempt to log in or use the application functions.

What variations in the actor’s interaction are possible?

Giving up registration.

What system information will the actor acquire, produce, or change?

The actor will be informed whether they entered the correct format of information or not.

Will the actor has to inform the system about changes in the external environment?

Not in this step.

What information does the actor desire from the system?

Whether they entered valid information or not.

Restaurant Registration

Who is the primary actor, the secondary actor (s)?

A person who works at the restaurant. They might be a manager or staff.

What are the actor’s goals?

Make a restaurant's account to use the application.

What preconditions should exist before the story begins?

The restaurant should have their own email, phone number, and other information about the restaurant.

What main tasks or functions are performed by the actor?

Create a new account of the restaurant.

What extensions might be considered as the story is described?

A user’s entry fails to match the expected format: they need to revise their entry. A user provides wrong information: they will have problems when they attempt to log in or use the application functions.

What variations in the actor’s interaction are possible?

Cancel the registration.

What system information will the actor acquire, produce, or change?

The actor will be informed whether they entered the correct format of information or not.

Will the actor has to inform the system about changes in the external environment?

Not in this step.

What information does the actor desire from the system?

Whether they entered valid information or not.

Restaurant Menu management

Who is the primary actor, the secondary actor (s)?

A person who works at the restaurant. They might be a manager or staff.

What are the actor’s goals?

Add or edit the menu list of the restaurant.

What preconditions should exist before the story begins?

The actor must have their restaurant’s account.

What main tasks or functions are performed by the actor?

Add and edit the menu of the restaurant on the application. Menu information includes Name, description, and price.

What extensions might be considered as the story is described?

Manage real-time menu availability.

What variations in the actor’s interaction are possible?

Undo the changes.

What system information will the actor acquire, produce, or change?

The actor will get a prompt message if the changes are correct.

Will the actor has to inform the system about changes in the external environment?

Not in this step.

What information does the actor desire from the system?

Information about does the menu information changed correctly.

Iteration #2

Customer Order Function

Who is the primary actor, the secondary actor (s)?

A person who wants to order food via food delivery application. The restaurant.

What are the actor’s goals?

Order food from a restaurant and receive it at the place where the actor is.

What preconditions should exist before the story begins?

They must have an account and set the location.

What main tasks or functions are performed by the actor?

Find restaurants based on the customer's location. Select 1 restaurant by sorting or searching. Choose menus and order with a payment method.

What extensions might be considered as the story is described?

Customers may attempt to proceed an order with an empty shopping cart. Customers may add a wrong menu to the shopping cart. Customers may want to change the delivery location. - This cannot be done since the customer found the restaurant based on the location in the first place. The payment method may fail in certain situations.

What variations in the actor’s interaction are possible?

Change the receiver information - name or phone number. Change or add the payment method.

What system information will the actor acquire, produce, or change?

The actor will receive an order confirmation after completing the order. The restaurant will receive the order request. The customers can see the order history.

Will the actor has to inform the system about changes in the external environment?

If the customer wants to change order information such as cancellation.

What information does the actor desire from the system?

Whether their order has been correctly placed or not. Confirmation with information of the order.

Customer Order History

Who is the primary actor, the secondary actor (s)?

A person who ordered food using the application. A restaurant where took the order.

What are the actor’s goals?

Check the history of the orders.

What preconditions should exist before the story begins?

A user must have ordered food through this application.

What main tasks or functions are performed by the actor?

Check the history of the orders with information. Each history has a link to leave a review about the order.

What extensions might be considered as the story is described?

Leave a review about the order from the order history page.

What variations in the actor’s interaction are possible?

Leave a review about the order. Reorder from the same restaurant.

What system information will the actor acquire, produce, or change?

The history of their order.

Will the actor has to inform the system about changes in the external environment?

Not in this step.

What information does the actor desire from the system?

History of what they ordered using the application.

Customer Review

Who is the primary actor, the secondary actor (s)?

A person who ordered food from the restaurant. The restaurant.

What are the actor’s goals?

Leave a review about food and restaurant on the application.

What preconditions should exist before the story begins?

A user must have ordered and received food from the restaurant.

What main tasks or functions are performed by the actor?

Leave a comment, and a rating of the food they ordered.

What extensions might be considered as the story is described?

Customers might leave a review or not. Customers may want to leave multiple reviews - this is prevented. Customers may edit the review - this is prevented.

What variations in the actor’s interaction are possible?

Add photos to the review. Edit review. Delete review. View other reviews.

What system information will the actor acquire, produce, or change?

The review will be stored in the review database.

Will the actor has to inform the system about changes in the external environment?

The restaurant can request to delete the irrelevant reviews, they cannot delete the review directly.

What information does the actor desire from the system?

Customers can share reviews and get information about the restaurant.

Restaurant Order Confirmation

Who is the primary actor, the secondary actor (s)?

A user who logged in as a restaurant. A person who ordered food.

What are the actor’s goals?

To confirm an order request from the customer.

What preconditions should exist before the story begins?

The restaurant must be logged in to get an order.

What main tasks or functions are performed by the actor?

Check the order list and confirm the order.

What extensions might be considered as the story is described?

The restaurant can refuse to take an order.

What variations in the actor’s interaction are possible?

The request from the customer might not be able to take. Any additional requests can be added after confirmation.

What system information will the actor acquire, produce, or change?

The status of the order will change in real-time.

Will the actor has to inform the system about changes in the external environment?

The status of the order can be changed easily. They need to inform their status actively.

What information does the actor desire from the system?

The status of the order.

Iteration #3

Sort / Search Restaurants

Who is the primary actor, the secondary actor (s)?

Customer

What are the actor’s goals?

Get a list of restaurants that the customer needs

What preconditions should exist before the story begins?

The customer have logged in, restaurants have correct categories, name and reviews.

What main tasks or functions are performed by the actor?

Sort or search restaurants by clicking buttons

What extensions might be considered as the story is described?

Customer could use a inappropriate search query and fail to get a search result.

What variations in the actor’s interaction are possible?

Customer could get a meaningless sort result if restaurants have no reviews.

What system information will the actor acquire, produce, or change?

They will acquire search/sort result, no produce and no change.

Will the actor has to inform the system about changes in the external environment?

No

What information does the actor desire from the system?

A list of restaurants they want to order from.

Image File Upload Feature

Who is the primary actor, the secondary actor (s)?

Restaurant

What are the actor’s goals?

To upload an image file

What preconditions should exist before the story begins?

Restaurants should have registered their accounts.

What main tasks or functions are performed by the actor?

Uploading images for restaurant and menus.

What extensions might be considered as the story is described?

Restaurants have a choice not to upload an image. - Then the image content will display a default image.

What variations in the actor’s interaction are possible?

They could upload an image with too big size or a wrong file extension.

What system information will the actor acquire, produce, or change?

Their images

Will the actor has to inform the system about changes in the external environment?

The actor does not have to. When they upload the images, the system will show the images to customers.

What information does the actor desire from the system?

If they succeed to upload an image or not.

Order Status Change Feature

Who is the primary actor, the secondary actor (s)?

Restaurant user, Customer user.

What are the actor’s goals?

Change the status of the order. Restaurant users can inform the status of the order to the customers and organize the orders in the 'Your Orders' table.

What preconditions should exist before the story begins?

The restaurant needs to take an order to check the received order.

What main tasks or functions are performed by the actor?

By clicking the button of the order status, they can change the order status.

What extensions might be considered as the story is described?

The user might make a mistake by changing the order status even it is not finished with the previous status.

What variations in the actor’s interaction are possible?

The restaurant user can contact the customer to revise the order status.

What system information will the actor acquire, produce, or change?

The status button will show the current status of the order.

Will the actor has to inform the system about changes in the external environment?

Not in this step.

What information does the actor desire from the system?

Whether the status of the order changed correctly or not.

Deleted Order Checking

Who is the primary actor, the secondary actor (s)?

Restaurant User

What are the actor’s goals?

Check the deleted orders that removed from the 'Your Orders' table.

What preconditions should exist before the story begins?

The restaurant needs to have a completed order deleted from the 'Your Orders' table.

What main tasks or functions are performed by the actor?

See an order list that deleted from the 'Your Orders' table to check the previous orders.

What extensions might be considered as the story is described?

If the restaurant user accidentally deletes the order, they can check the detail of the order by checking the deleted orders page.

What variations in the actor’s interaction are possible?

Get the detail of the order and customer.

What system information will the actor acquire, produce, or change?

The detail of the deleted orders. Nothing will be changed.

Will the actor has to inform the system about changes in the external environment?

Not in this step.

What information does the actor desire from the system?

The detail of the deleted orders.

Does the actor wish to be informed about unexpected changes?

No.