Skip to content

Requirements and Specification

th-snu 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/12/17 version 2.00


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 introduce page.
  • Preconditions: User is in introduce page.
  • Scenario:
    1. User clicks register button.
    2. User inputs their account information.
    3. User presses submit button.
    4. New account is created, login pop up is closed.
  • Exception: Account management system is down.
  • Acceptance test:
    • If user successfully filled out form, and press submit button, new account should be added to DB, user should be on introduce page.

User Story #2 - 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 pop up, user must write menu name, photos, and reviews.
    3. User must choose rating of the food.
    4. User must select category of the food.
    5. User must search restaurant in GoogleMap, and select restaurant by clicking on marker.
    6. If user click “Submit”, then review is added, in the backend, user’s taste in food is analyzed based on these reviews. Tag is attached to the review.
  • Exception: User didn’t select restaurant or write menu name, and reviews. Or didn't choose category, rating of food.
  • Acceptance test:
    • If everything is submitted, then add review pop up is closed, and posted review should be shown.

User Story #3 - See Food Reviews in Feed

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

I want to see my recent food reviews.

So that I can recall meals I've had.

  • Trigger: User click “Feed tab” in the main page.
  • Precondition: User is in the main page
  • Scenario:
    1. User click “Feed tab”
    2. User can see all the meal information by themselves.
  • Exception:
  • Acceptance test:
    • If user have submitted any review, the food list is shown.
    • If user have not submitted any review, then nothing is shown.

User Story #4 - See Food Reviews in Category

As a person who want to take a look at certain cuisine,

I want to see reviews of one category of food

So that I can choose ones I eat.

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

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 reviews 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 see where he/she is now using geolocation information.
    3. User can move marker. Then web service shows restaurants user reviewed near the marker.
    4. User can see markers on the map pointing the restaurant he/she has visited.
    5. User can see preview of reviews.
  • Exception: The GPS system does not work.
  • Acceptance test:
    • If user click the detail button, the more information about that review is shown.
    • If user move the marker, 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. 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.

User Story #8 - 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 #9 - 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 #10 - Recommendation by Location

As a person who finds restaurant nearby selling review's menu,

I want to get a recommendation about menu.

So that I can decide what I want to eat.

  • Trigger: User click "Get Recommendation" button and then “Recommendation by Location” button.
  • Precondition: User is in the review detail modal.
  • Scenario:
    1. User click “Get Recommendation” button and then "Recommendation by Location" button.
    2. Web service recommend menu based on user reviews' rating within 1 kilometer.
    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 “Get Recommendation” and "Recommendation by Location", menu recommendation should be shown.

User Story #11 - Recommendation by Taste

As a person who finds restaurant selling review's menu,

I want to get a recommendation about menu.

So that I can decide what I want to eat.

  • Trigger: User click "Get Recommendation" button and then “Recommendation by Taste” button.
  • Precondition: User is in the review detail modal.
  • Scenario:
    1. User click “Get Recommendation” button and then "Recommendation by Taste" button.
    2. Web service recommend menu based on user reviews and taste within 10 kilometer.
    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 “Get Recommendation” and "Recommendation by Taste", menu recommendation should be shown.

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