Skip to content

Requirements & Specifications

Jaechan Lee edited this page Oct 8, 2023 · 34 revisions

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. Our app, Food Record, is a restaurant review-dedicated social networking service (SNS) where users can easily share and record reviews of restaurants with photos and ratings. Liked reviews can be marked with a thumbs-up icon. Additionally, by analyzing the preferences in user reviews, the app provides personalized tags for each user, allowing them to discover tastes they may not have been aware of. In the personal profile tab, users can neatly organize and see the reviews they have left. In the main tab, a personalized recommendation feed based on user tags is provided, including those of users they follow. If more information beyond the feed is needed, in addition to the basic restaurant search function, users can easily search for others with similar tastes using user tags. In other words, they can follow users with similar preferences or those who upload high-quality reviews. Now, there's no need to agonize over choosing a restaurant; enjoy a personalized feed through our app and experience a more exciting dining culture!

Customer

Our target involves everyone who wants 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) Food record
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

Use 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 preferences."
    • Scenario : When a user enters a username or click a user tag in the search bar.
      • Given: The user is on the search screen.
      • When: The user enters a username or click a user tag.
      • Then: The app should display relevant user profiles matching the entered username or user tag.
  2. As a user, I want to receive personalized tags for my profile based on my previous reviews, so my profile accurately represents my food tastes."
    • Scenario : When a user submits multiple reviews with specific food preferences.
      • Given: The user has submitted reviews with specific food preferences.
      • When: The system analyzes the reviews.
      • Then: The system should generate personalized tags for the user's profile based on the food preferences identified in their reviews.
  3. As a food enthusiast, I want to write and post reviews for restaurants, including details like the restaurant's name, menu items, photos, ratings, and detailed feedback, so I can share my dining experiences with others."
    • Scenario : When a user submits a restaurant review with all required details.
      • Given: The user is on the review submission screen.
      • When: The user provides the restaurant's name, menu items, photos, ratings, and detailed feedback.
      • Then: The review should be posted successfully.
  4. As a user, I want to record my dining history so that I can revisit and go down my memory lane."
    • Scenario : When a user wants to access their recorded dining history.
      • Given: The user is on their profile.
      • When: The user navigates to their own profile.
      • Then: The user should be able to view and search their recorded dining experiences.
  5. As a user, I want to be able to follow and unfollow other users, so I can keep up with their reviews and recommendations or tailor my feed to my preferences."
    • Scenario 1: When a user follows another user.
      • Given: The user is viewing another user's profile.
      • When: The user clicks the "Follow" button.
      • Then: The user should start following the other user, and their updates should appear in the follower's feed.
    • Scenario 2: When a user unfollows another user.
      • Given: The user is viewing a user they are following.
      • When: The user clicks the "Unfollow" button.
      • Then: The user should no longer follow the other user, and their updates should not appear in the follower's feed.

Non-functional requirements

  • Security: Users' personal data will be encrypted when stored, and will not be accessible to third-parties without approval.
  • Efficiency: Images will be uploaded directly to S3, bypassing the API server to improve upload speed and reduce server load.

User Interface requirements

UI_FigJam_Wireframe_v2

Figma prototype: https://www.figma.com/proto/8zNLVGvZhxlhT5SNPVvrBg/Android_app?page-id=89%3A231&type=design&node-id=89-497&viewport=836%2C549%2C0.47&t=KpKUYV9efdzoGRqC-1&scaling=min-zoom&starting-point-node-id=89%3A497&mode=design

Clone this wiki locally