Skip to content

Requirements & Specifications

hzlcodus edited this page Dec 10, 2023 · 34 revisions

Revision History

  • First Draft ( 2 Oct 2023 )
  • Updated user stories ( 12 Nov 2023 )
  • Updated Non-functional requirements, User Interface requirements ( 3 Dec 2023 )
  • Updated Project Abstract and Customer ( 10 Dec 2023 )

About our project

Project Abstract

As the dining culture advances, there is a growing demand for recording and sharing one's dining experiences and favorite restaurants. Despite the availability of many restaurant review services, finding a restaurant review that aligns with your personal taste remains challenging.

Our app, EatAndTell is a restaurant review-dedicated social networking service (SNS), motivated by the lack of personalization in existing restaurant review services. Just simply write restaurant reviews! Based on your reviews, our app creates tags for you to capture your taste. Tags are keywords representing each user’s tastes based on their reviews. You can check them out on your profile; we will discover tastes that you may not have been aware of. By tags, our app provides a personalized recommendation feed, offering restaurant reviews that you would be interested in. An independent feed consisting of review of users you follow is also provided. You can easily find and follow friends by searching for users with similar tags with you. With EatAndTell, enjoy a best-fit SNS tailored to your personal tastes and enhance your dining quality!

Customer

Our target involves everyone who wants to record and search for restuarant reviews. More specifically, we target customers who want to personalize their dining experience and find like-minded friends by sharing their food tastes.

Competitive Landscape

Our app can share reviews from reliable users, which we follow, and can easily upload food-specialized reviews based on our app’s template. Also, we will provide user tags to make users find similar users and refer to their reviews with ease. These characteristics personalizes users’ dining experiences.

Service Naver Map/Google Map SNS Catch Table (Food review apps) EatAndTell
can easily search for reliable and similar users X O X O
purposed on uploading reviews O X O O
specialized to restuarants X X O O

Naver Map/Google Map :

  • Reviews are generated based on locations, not users. Thus, following other users and sharing information with them is not active. They show reviews from randomized group of people, which makes it harder to find reviews from people with similar tastes and reliability.
  • These services are not specialized to restaurants.

Instagram/Facebook/Twitter (SNS) :

  • Social Network Services focus on displaying themselves, such as appearances or hobbies. They are not fit for purpose to express one’s food preferences to others, or to document one’s dining experiences.
  • They are also not specialized to restuarants.

Catch Table (including other food review applications) :

  • Reviews are generated based on locations, not users.
  • They do not have enough keywords or hashtags, which makes it harder to search for reviews, users, or restaurants that users want.

Functional Requirements

Use Cases

  • Use Case 1
Goal User wishes to write a new review
Actor User
Pre-condition App is currently running, user at login screen
Main Scenario 1. User enters account and password
2. System verifies and logs user in.
3. System presents main screen.
4. User presses the “write” button *
5. System shows submission screen to the user.
6. User writes review, including mandatory details(photos, restaurant name) and submits.
7. System verifies and records the new review.
8. System shows success message to the user, then returns user to the main screen
Extensions (error scenarios) 2a. Account is not registered or password is incorrect
2a.1. System returns user to login screen.
2a.2. User backs out or tries again (backup-email?)
7a. Mandatory details do not exist in review
7a.1. System shows a “please fill in required details” message to the user
7a.2. User backs out, or tries again
  • Use Case 2
Goal User A wishes to follow another user B.
Actor User A
Pre-condition App is currently running, user at login screen
Main Scenario 1. User A enters account and password
2. System verifies and logs user in.
3. System presents main screen.
4. User A presses the “follow” button. *
5. System presents search screen with two modes of searching. (via tag or uid)
6. User A selects mode and enters uid or combination* of tags.
7. System finds match and presents results to the user.
8. User A presses result of user B.
9. System shows profile screen of user B to user A.
10. User A presses “follow” button.
11. System updates user A’s and user B’s new follow.
Extensions (error scenarios) 2a. Account is not registered or password is incorrect
2a.1. System returns user to login screen.
2a.2. User backs out or tries again (backup-email?)
7a. Match doesn’t exist
7a.1. System shows a “match doesn’t exist” message to the user.
7a.2. User backs out, or tries again.
  • Use Case 3
Goal User wishes to edit personal profile
Actor User
Pre-condition User is currently on main screen
Main Scenario 1. User presses “my profile” button.
2. System shows user’s profile screen to the user.
3. User presses “profile edit” button.
4. System shows edit profile screen
5. User makes changes to the profile and presses “Save(Done)” button.
6. System verifies and records changes to the user’s account.
Extensions (error scenarios) 6a. Information submitted in the profile is not valid.
6a.1. System shows a “Information is not valid” message to the user
6a.2. User backs out, or tries again.
  • Use Case 4
Goal User wishes to like a post
Actor User
Pre-condition App is currently running, user at login screen
Main Scenario 1. User enters account and password
2. System verifies and logs user in.
3. System presents main screen.
4. User scrolls down and reads feed from following users.
5. User presses a post.
6. System shows post screen to user.
7. User presses “like” button.
8. System records ‘like’, and notifies it to the owner of the liked post.
Extensions (error scenarios) 2a. Account is not registered or password is incorrect
2a.1. System returns user to login screen.
2a.2. User backs out or tries again

User Stories

  1. As a user, I want to search for other users by their usernames or user tags, so I can connect with people who share similar food tastes with me.
    • Scenario : A user searches for other users by their usernames or user tags.
      • Given: The user is on the search screen.
      • When: The user clicks a tab under the search bar to select search mode, enters a username or user tag at the search textfield, then clicks the search button.
      • Then: The app should display relevant user profiles matching the entered username or user tag.
  2. As a user, I want to write and post reviews for restaurants, including details like the restaurant's name, photos, ratings, and comments, so I can share my dining experiences with others.
    • Scenario : A user uploads a review with all required details.
      • Given: The user is on the upload screen.
      • When: The user provides the restaurant's name, photos, ratings, and comments (photos are optional).
      • Then: The review should be uploaded successfully.
  3. As a user, I want to receive personalized tags at my profile based on my previous reviews, so my profile appropriately represents my food tastes.
    • Scenario : A user uploads one or more reviews and checks if tags are updated.
      • Given: The user has uploaded reviews with particular tastes.
      • When: The user clicks the “태그 갱신" button on his/her profile.
      • Then: The system should analyze the user’s reviews and generate personalized tags for the user's profile that best describe his/her tastes.
  4. As a user, I want to record my dining history by reviews and view those of others' that I liked, so that I can revisit and go down my memory lane.
    • Scenario 1: A user wants to access their past reviews.
      • Given: The user is on his/her profile screen.
      • When: The user scrolls down his/her profile screen's feed (for default, 'MY' tab is clicked).
      • Then: The user should be able to view the list of past reviews which contain his/her past dining experiences.
    • Scenario 2: When a user wants to access others' reviews that he/she liked.
      • Given: The user is on his/her profile screen.
      • When: The user clicks the 'LIKED' tab and scrolls down the feed.
      • Then: The user should be able to view others' reviews which he/she liked previously.
  5. As a user, I want to follow other users that has similar tastes with me, so I can keep up with their reviews at home feed.
    • Scenario : A user follows other user and checks if the changes are reflected.
      • Given: The user is viewing profile of other user whom he/she did not follow yet.
      • When: The user clicks the “팔로우하기” button.
      • Then: The user should start following the other user on his/her profile and see his/her posts at home feed.

Non-functional Requirements

  • Secure Storage: Users' personal data will be encrypted when stored, and will not be accessible to third-parties without approval.
  • Secure Connection: Client will connect to server with HTTPS connection, ensuring all data exchanged is encrypted and secure.

User Interface Requirements

EatAndTell_Wireframe

Figma prototype Link