Skip to content

Requirements and Specification

jyeokchoi edited this page Dec 17, 2019 · 29 revisions

Before Revision... always link old Requirements and Specification at the bottom!

KiWi order requirement and specification document

2019/11/2 version 1.1 (remove user story #8)


Project Abstract

This service aims to personalize the tasteful experience on eating, and to provide services that are more optimized for each user. Using the food pictures and brief information provided by the user, the service analyzes reviews of the food and categorizes the individual food tastes. Based on the data, our service can recommend appropriate restaurants for individuals when they eat new food or reorder the food they ate. In addition, considering the interaction between different users, the service analyzes the reviews and preferences of people with similar tastes when recommending restaurants, and provides a service that gives the user a feeling of being more 'personalized' recommendations.


Customer

The act of eating food is related to human host, so everyone can be a user. However, those who are more interested in tasteful experience, those who want to use the review platform but give up on entry barriers or annoyance, and those who often have to eat in strange places can be our main customers.


Competitive Landscape

Its competitors in the market include Naver Map and Mango Plate.

Naver Map

Naver Map is a location-based system that provides a platform to share ratings and one-line reviews of various locations based on users' current locations. The biggest problem with Naver Map-tasting restaurant search is that the restaurants are not classified by menu or price range, and are arranged completely independent of individual preferences. Our web service can provide differentiated service from Naver Map by classifying restaurants in various ways, including large sections of food, price range, food that we liked, and stores that we didn't eat, and reflecting individual preferences.

Mango Plate

Mango Plate is a platform that can leave restaurant reviews and comments. We have many things in common, such as service and account management, and restaurant grade inquiry. However, it is not known whether each of the mango plates has a similar or different taste to me. In addition, Mango Plate differ in that the service itself lists the user's ratings around a particular store, whereas the service we will provide lists the store’s user's ratings based on user, so we can provide more optimized information to individuals.

Those two competitors share the blind spot that users cannot feel the utility in leaving their experience. Even if they post comments on Naver Map or Mango Plate, the platforms do not provide services tailored to those reviews. In addition, posting, sorting and analyzing their records, like professional blogs and reviewers, is a hassle, which makes a big difference in that it automatically handles those tasks and allows users to benefit from their immediate use of the service.


User Stories

User Story #1 - Sign Up

As a person who wants to try using our service,

I want to try the new food SNS service.

So that I can share my food experience.

  • Trigger: User click register button on login page.
  • Preconditions: User is in login page.
  • Scenario:
    1. User clicks register button.
    2. User inputs their account information.
    3. Authentication email will be sent to user’s email.
    4. User writes down authentication code, and press submit button.
    5. New account is created, and user is logged in with that account in main page.
  • Exception: Account management system is down.
  • Acceptance test:
    • If user enters all information and try authentication, email should be sent to given user’s email.
    • If user successfully filled out form and write correct authentication code, and press submit button, new account should be added to DB, user should be redirected to main page with logged in status.

User Story #2 - SNS Connection

As a person who want to try our services with his old friends,

I want to share my experience with friends I know in other SNS.

So that I can keep sharing experience with other friends in new service.

  • Trigger: User click “with SNS” on register option.
  • Preconditions: User is in the sign up page.
  • Scenario:
    1. User click button to sign up with SNS websites (Facebook, Instagram, Google, etc.)
    2. User will sign up in those websites.
    3. User will be redirected to our service’s homepage after being authenticated.
  • Exception: Those outer websites don’t send proper data.
  • Acceptance test:
    • If user successfully logged-in and our service got authentication info from those websites, user should be redirected to their main page.
    • If user can’t sign up through other services, user should be redirected back to sign up page.

User Story #3 - Create New Review

As a person who has unique taste in food,

I want to submit my reviews.

So that I can get more believable recommendation about food or restaurants.

  • Trigger: User click “Add review button”.
  • Preconditions: User is in the main page.
  • Scenario:
    1. User click “Add review button”.
    2. In add review page, user must add menu name, photos, and reviews.
    3. User can search restaurant in GoogleMap, and select restaurant.
    4. If user click “Submit”, then review is added, in the backend, user’s taste in food is analyzed based on these reviews.
  • Exception: User didn’t add name of the restaurant, menu name, location, and reviews.
  • Acceptance test:
    • If user didn’t add name of the restaurant, menu name, location, and reviews, alert message should pop.
    • If everything is submitted, then web goes back to review list page, and posted review should be shown.

User Story #4 - Create New Review using SNS

As a person who want to store their own food pictures in SNS in our service,

I want to keep my food pictures in SNS on our service too.

So that I can get all pictures accumulated in one place.

  • Trigger: User click “Upload”.
  • Preconditions: User is in the main page.
  • Scenario:
    1. User click button to upload their pictures.
    2. User will choose one of the options. 2) from SNS.
    3. SNS website will provide share option. Our service will get info from it.
    4. User inputs information of picture, and possibly a comment.
    5. User press submit button.
    6. User will be redirected to main, new food review will be shown there.
  • Exception: SNS website doesn’t respond
  • Acceptance test:
    • If SNS connection is failed, user will be notified with error message, and redirected back to main page.
    • If user complete form and press submit, website should show new review on main page.

User Story #5 - See Food Reviews in Calendar

As a person who want to look my list of meals,

I want to arrange my food record in calendar.

So that I can control my diet.

  • Trigger: User click “Calendar tab” in the main page.
  • Precondition: User is in the main page
  • Scenario:
    1. User click “Calendar tab”
    2. User can click the date
    3. User can see all the meal information at selected day.
  • Exception:
  • Acceptance test:
    • If user have recorded at selected day, the food list is shown.
    • If user have not recorded any article at selected day, then nothing is shown.

User Story #6 - See Food Reviews in Map

As a person who tries to eat lunch in a strange place,

I want to get some recommended restaurant.

So that I can eat food at a restaurant that sells my favorite food.

  • Trigger: User click “Location tab” in the main page.
  • Precondition: User is in the main page.
  • Scenario:
    1. User click “Location tab”.
    2. User can move marker. Then web service shows restaurants user reviewed near the marker.
    3. User can see the buttons on the map where point the restaurant he/she has visited.
    4. User can see where he/she is now using GPS.
  • Exception: The GPS system does not work.
  • Acceptance test:
    • If user click the button, the more information about that restaurant is shown.
    • If user move the map, the restaurants in that location is shown.

User Story #7 - Recommendation before Deciding Specific Menu(I feel hunngry!)

As a person who think a lot about what to eat,

I want to get a recommendation about menu.

So that I can decide what I want to eat.

  • Trigger: User click “I feel hungry!” tab.
  • Precondition: User is in the main page.
  • Scenario:
    1. User click “I feel hungry!” tab.
    2. Web service recommend menu based on user reviews. 3. User can filter by type of food such as Korean, Western, Japanese, etc.
    3. If user clicks one menu, user can see others' reviews of the specific menu.
  • Exception: User didn’t post review of anything or posted very few reviews.
  • Acceptance test:
    • If user click “I feel hungry!”, menu recommendation should be shown.
    • The recommendation should both consider user’s and friend’s review and other’s review. (in case of Exception)

User Story #8 - Recommendation of Recipe with Ordering System

As a person who doesn’t want to move a lot,

I want to find a recipe and buy ingredients at once.

So that I can reduce my energy to find ingredients and shop.

  • Trigger: User click “Food Article”.
  • Precondition: User is in the main page.
  • Scenario:
    1. User click “Food Article”.
    2. User click “show recipe”.
    3. recipes are shown.
    4. user can choose recipe.
    5. If user clicks “buys ingredients”, then all ingredients are ordered.
  • Exception: User goes back to home page.
  • Acceptance test:
    • If user click “show recipe”, then list of recipes should be shown.
    • If user click “buy ingredients”, then all the ingredient should be ordered.

User Story #9 - Add New Friend

As a people who have similar taste in food,

We want to add each other as a friend.

So that we can see each other’s review and get more believable recommendation.

  • Trigger: User click “Add friends tab”.
  • Precondition: User is in the main page.
  • Scenario:
    1. User click “Add friend tab”.
    2. User can search friend’s username.
    3. (Maybe) Web Service can recommend friends, by analyzing user taste in food.
    4. If user click “Add friend” button, then friend is added.
    5. If user go back to my page, list of friends is renewed.
    6. User can see friends review, and web service can recommend restaurant and menu based on friends review too.
  • Exception: User go back to main page not adding any friends.
  • Acceptance test:
    • If user goes back to main page not adding any friends, then nothing should be changed in main page.
    • If user add friends, in list of friends, added friend’s name must be shown.
    • Check back-end whether friend’s reviews are well analyzed too.

User Story #10 - Recommendation at Friend's Main Page

As a person who is tempted to try the food on friend’s feed,

I want to try the food my friend ate in some restaurant nearby.

So that I can enjoy having food experience my friend had.

  • Trigger: User click image on food article detail page.
  • Preconditions: User is in friend’s food article page.
  • Scenario:
    1. User click food image.
    2. User click restaurant listing button.
    3. Website provides restaurant recommendation.
    4. User choose one of the restaurants.
    5. User will be given restaurant’s information.
  • Exception: There’s no relevant restaurant available.
  • Acceptance test:
    • If user click “restaurants”, user will be given list of restaurants serving the food, and in a certain distance the user set.
    • If user click one of the restaurants in the list, user should be given detailed information to reach restaurant.

User Story #11 - Helps

As a person who started to use our service,

I want to know how to use our web page.

So that I can enjoy the service.

  • Trigger: User click “Helps button” in the my-page.
  • Precondition: User is logged-in, User is in the my-page.
  • Scenario:
    1. User click “Helps button”
    2. User can see how to use our service composed by pictures or video.
  • Exception:
  • Acceptance test:
    • If user click the helps button, the first one of pictures appears. User can flip through the pictures. (If we make how to use by pictures)
    • If user click the helps button, the playable video appears. (If we make by video)

Future Iterations(Expectation)

Sprint 2 - Design and Planning
Sprint 3 - covers User Story #1, #3, #9, #11 (Basic web structure implementation)
Sprint 4 - covers User Story #7, #8, #10 (Recommendation feature)
Sprint 5 - covers User Story #2, #4, #5, #6 (Linking SNS and advanced web structure)
Sprint 6 - Wrap Up

User Interface Requirements


Revision History

Clone this wiki locally