-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements and Specifications
Project Abstract
Key Terms
Customer
Competitive Landscape
User Interface Requirements
User Stories
2020-10-17 [v1.0] initial version
adoor is a prompt-driven social media platform ideal for building intimacy.
Upon successful sign in, users will be able to view a group of ‘Recommended Questions’ which they can choose to answer. A user-based collaborative filtering (ML) model will be leveraged to recommend specific ‘Questions’ to each user as ‘Recommended Questions’.
Though responding to ‘Questions’ is the core part of our service, users are not restricted to posting responses to given questions. They may access questions other than the ‘Recommended Questions’ from the ‘Question Feed’ or write text-based articles of any lengths and purpose, including questions for which they can receive ‘Responses’ from friends (i.e. ‘Custom Questions’).
Users may also choose to customize the audience of their ‘Posts’ (i.e. ‘Custom Questions’, 'Responses', ‘Articles’); ‘Posts’ can be shared with either their friends or other users of adoor (i.e. ‘Anonymous Post’), or both. Also, reactions such as ‘Likes’, ‘Comments’ and ‘Replies’ can be set to be private between the author and the recipient. Furthermore, any user who wishes to find out their friend’s opinions on a given question can request a response for the question easily with a few clicks.
Overall, adoor welcomes users with a wide range of thought provoking and individualized Question prompts along with the flexibility and focus of the modes of share, opening a door to active intrapersonal and interpersonal communication.
(226 words)
EN | KO | Description |
---|---|---|
[Friend] Feed | 친구 글 모음 | Feed consisting of posts shared by self & friends |
[Anonymous] Feed | 익명 글 모음 | Feed consisting of posts shared anonymously by self & users other than friends |
[Question] Feed | 질문 모음 | Feed consisting of all daily recommended questions |
[Question List] Widget | 추천 질문 | Widget on Main Page listing recommended questions for user |
[Friends List] Widget | 친구 | Widget on Main Page listing friends of user |
Daily Questions | 오늘의 질문 | Service-wide collection of all recommended questions |
Recommended Questions | 추천 질문 | Questions chosen w/ ML model from Daily Questions for each user |
Custom Question | 내가 만든 질문 | Question created by users (rather than the admin of adoor) |
Post | 모든 게시물 | Any submissions to the feed (i.e. Articles, Responses, Custom Questions) |
Response | 답변 | Posts written in response to Questions |
Article | 아무말 | Posts written without Question prompts |
Comment | 댓글 | Direct comments to posts |
Reply | 덧글 | Replies to comments |
Private Comment/Reply | 비밀 댓글/덧글 | Comment or reply set to be private between the author and the recipient. |
- Anyone that wants to learn more about themselves and their friends - whether it be about their values, habits, or favorite flavors of popcorn.
- Anyone curious about other people’s opinions on a wide range of topics.
- Anyone willing to reflect on or express their thoughts on different questions, from light to serious, short-answer to free-response.
- Anyone who prefers text-based communication to an image-oriented one, the currently predominant form of communication on major social media platforms.
Market Competitors
Two-way communication | Easy and quick writing & sharing | Organized writing & editing | ML-driven Daily Questions | Wide range of topics | |
---|---|---|---|---|---|
Kakaotalk | O | O | X | X | X |
Finstagram | X | O | X | X | X |
Naver Blog | X | X | O | X | O |
O | O | O | X | O | |
X | O | X | X | O | |
adoor | O | O | O | O | O |
Easy & quick request to friends for responses on questions | Write and share custom questions with other users | Private reactions (i.e. comments, likes, ...) | View and post to anonymous feed | Ad-free | |
---|---|---|---|---|---|
Kakaotalk | X | X | △ | X | X |
Finstagram | X | X | X | X | X |
Naver Blog | X | X | O | X | X |
O | X | X | X | X | |
O | O | △ | O | X | |
adoor | O | O | O | O | O |
Three Major Strengths of adoor
(1) Daily Recommendation of Thought-provoking Questions
Users of adoor are given a chance to broaden their horizons through an individually curated group of questions. These prompts will comprise a wide range of topics, from light conversation starters to more in depth and personal ones, and will serve as seeds of thoughts to the users on a daily basis.
(2) Focus on Communicating Thoughts
Unlike many other social media platforms run by Big Tech companies, adoor has a subscription revenue model, and is thus ad-free. Users will be able to concentrate solely on thinking and communicating without the distraction of irrelevant ads. Also, we make editing and publishing easy for contents of varying modes and lengths by leveraging useful features from other relevant services such as Facebook and Github.
(3) Sharing with and Learning from a Wider Audience
Users can share and view posts not only with their friends but also any with other users of adoor via the Anonymous Feed. Any curious minds will benefit hugely from interacting with different users on a range of topics they have never encountered elsewhere. They can even directly publish questions and seek opinions from a larger circle of community. (Any toxic questions will be cleaned up by a not-yet(?)-but-in-30-years-existing AI for adoor ☺)
Google drive Link(all pages)
Google drive Link(wireframe)
No. | Feature | Sprint |
---|---|---|
1 | Sign Up | 3 |
2 | Login | 3 |
3 | View Daily Questions | 4 |
4 | View Friends List | 4 |
5 | Write a Response | 3 |
6 | Comment | 3 |
7 | Reply | 5 |
8 | Like | 3 |
9 | Private Comment | 5 |
10 | Send Question to Friend | 5 |
11 | View and Accept Friend Request | 4 |
12 | Setting an audience to Post | 4 |
13 | View Friends’ Posts | 4 |
14 | Write an Article | 3 |
15 | Write a Custom Question | 4 |
Feature: Sign Up
Actors: Those who want to use adoor service as a member
Precondition: User has not created his/her own account before. User is currently in the Login Page.
Trigger: User clicks on the [Sign Up] Button
Scenario
(1) Before signing up, as a non-member of *adoor*, User can only access the Login Page and Sign Up Page. (2) User clicks on the [Login] Button in the Login Page and is redirected to the Login Page, but does not have his/her own account. (3) Then User clicks on the [Sign Up] Button in the Login Page. (4) User is redirected to the Sign Up Page, and enters his/her information for the required fields: email, username, and password (5) User clicks on the [Sign Up] Button. (6) User is redirected to the Question Selection Page, and asked to choose at least 5 likable questions from sample questions provided. (7) After User clicks on the [Done] Button, with a new account created, User is redirected to the Main Page as logged in. (8) After signing up, as a member of *adoor*, User can view all the features on the Main Page such as: [Question List] Widget, ‘[Friends List] Widget’, ‘[Question] Feed’, ‘[Anonymous] Feed’, and ‘[Friend] Feed’.
Exceptions:
User does not fill out all the required fields: email, username, and password. User does not select at least 5 likable questions in the Question Selection Page. User already has his/her own account.
Acceptance Test:
Given User has filled out all the required fields in the Sign Up Page and has selected at least 5 likable questions from sample questions provided. When User clicks on the [Done] Button Then User should be redirected to the Main Page as logged in, being able to view all the features on the Main Page. Then the User's account will be added to the database.
Feature: Login
Actors: Members of adoor who want to use all the features provided by adoor
Precondition: User has already created an account before User is currently in the Main Page. Trigger: User clicks on the [Login] Button
Scenario
(1) User is redirected to the Login Page after clicking the [Login] Button. (2) User enters his/her account information: email and password. (3) User clicks the [Login] Button. (4) If the account information is correct, the User is redirected to the Main Page or the page the User visited right before. (5) User Icon, Notification Icon and [Logout] Button are shown at the application header.
Exceptions:
User does not fill out the required fields: email and password. User entered an email that does not exist or entered an incorrect password.
Acceptance Test:
Given User has filled out all the required fields in the Login Page When User clicks on the [Login] Button Then User should be redirected to the Main Page or to the page the user visited right before. Then User can view and use all the features provided by *adoor*. Then User is able to see his/her User Icon and [Logout] Button at the application header.
Feature: View Daily Questions
Actors: Members of adoor who is logged in
Precondition: User is already logged in. User is currently in the Main Page. Trigger: User accesses the Main Page
Scenario
(1) User accesses the Main Page. (2) User can view [Question List] Widget with randomly generated questions. (3) Questions in the [Question List] Widget will be updated daily. (4) User can also refresh the questions on the [Question List] Widget by clicking [Random Questions Generation] Button.
Acceptance Test:
Given User is logged in When User accesses to the Main Page Then User should be able to view the [Question List] Widget in the Main Page. When User clicks [Random Questions Generation] Button on the [Question List] Widget Then the questions on the [Question List] Widget will be randomly generated again. When the [Question List] Widget is unfolded or folded and User clicks [Fold/Unfold] Icon Then the [Question List] Widget will be folded or unfolded.
Feature: View Friends List
Actors: Members of adoor who is logged in
Precondition: User is already logged in. User is currently in the Main Page.
Trigger: User accesses to the Main Page and [Friends List] Widget appears.
Scenario
(1) [Friends List] Widget appears at the right side of the Main Page. (2) The user can view all of his/her friends’ Profile Icons and usernames. (3) By clicking on a Friend’s username or Friend’s Profile Icon, the User can visit the Friend Profile Page of the Friend.
Acceptance Test:
Given User is logged in When User accesses to the Main Page Then [Friends List] Widget should appear at the right side of the Main Page. Then the User should be able to view all of his/her Friends’ Profile Icons and usernames at the [Friends List] Widget.
Feature: Write a Response
Actors: Members of adoor who is logged in
Precondition: User is already logged in User is currently in the Main Page. User is able to view the [Question List] Widget
Trigger: User selects a question one of the questions in the [Question List] Widget that he/she wants to answer.
Scenario
(1) User can view all of the questions in the [Question List] Widget. (2) User finds the question he/she wants to answer. (3) User selects the question he/she wants to answer. (4) User is redirected to the Question Detail Page that shows the selected question with [Write] Button, [Send] Button, and the Responses of others. (5) When the User clicks the [Write] Button, the Input Area appears below the question and the user can type his/her answer in the Input Area. (6) After the User finishes to answer in the Input Area, User can click [Submit] Button and the User is redirected to the former Question Detail Page with his/her own Response added. (7) User can always view the [Edit] Button and [Delete] Button for his/her own Response. (8) When the User clicks the [Edit] Button, the user can edit his/her own Response. (9) When the User clicks the [Delete] Button, the user can delete his/her own Response.
Exceptions: >
User typed nothing in the Input Area.
Acceptance Test:
Given User is logged in When User selects a question from the [Question List] Widget Then the User is redirected to the Question Detail Page. When User typed his/her answer in the Input Area in the Question Detail Page and clicks [Submit] Button Then the User is redirected to the former Question Detail Page with his/her own Response added. Then the Response for the question from the user will be added to the database. When User clicks [Edit] Button at his/her own Response in the Question Detail Page Then the User can edit his/her own Response When User clicks [Delete] Button at his/her own Response in the Question Detail Page Then the User can delete his/her own Response
Feature: Comment
Actors: Members of adoor who are attempting to comment to a Post in the [Friend] Feed
Precondition: User is already logged in User is viewing a Post from the [Friend] Feed in the Main Page or the Post Detail Page User is not attempting to write a Private Comment Trigger: User reads a Post in the [Friend] Feed
Scenario
(1) User scrolls through the [Friend] Feed in the Main Page and decides to comment on a specific Post. (2) User feels confident about his/her Comment being shared with any of the Comment recipient’s Friends. (3) User writes a Comment in the Comment Input Area below the Post and submits the Comment by clicking the [Enter] Button. (4) When the User writes a Comment to a Post in the [Friend] feed, the Comment and his/her username will be visible to the User and any Friend of the Author of the Post.
Exceptions:
User does not input any content in the Comment Section User clicks on the [Private] Toggle Button
Acceptance Test:
Given User has entered some content to the Comment Section When User clicks on the [Enter] Button or presses the ‘Enter’ key Then the Comment should be posted at the bottom of the list of Comments of the Post that belongs to the Post. The recipient of the Comment (i.e. Author of the Post) will receive a Notification on the Comment. Then the Authors of the Comment or the Parent Post can choose to delete the Comment but not edit it. Deleting the Comment will remove any Replies to the Comment. Notification that the recipient of the Author had received will also be removed upon the deletion of the Comment.
Feature: Reply
Actors: Users attempting to reply to a Comment
Precondition: User is already logged in User is viewing a Post from the [Friend] Feed in the Main Page or the Post Detail Page
Trigger: User clicks on the [Reply] Button under a certain Comment
Scenario
(1) User scrolls through the [Friend] Feed and decides to reply to a specific Comment. (2) User clicks on the [Reply] Button next to the Parent Comment and enters some contents to the Reply Input Area that is rendered at the bottom of the Reply thread. (3) The User finishes posting the Reply by clicking on the [Enter] Button or pressing the ‘Enter’ Key. (4) The audience of the Reply is limited to the audience of the Parent Comment. In other words, a Reply to an anonymous Comment can only be anonymous, and a Reply to a Private Comment can only be private. (5) User can also choose to write a private Reply to a public Comment under a Friend’s Post by clicking on the [Private] Toggle Button.
Exceptions:
User does not input any content in the Reply Section. User attempts to write a public Reply under a Private Comment.
Acceptance Test:
Given User has clicked on the [Reply] Button and entered some content to the Reply Section When User clicks on the [Enter] Button or presses the ‘Enter’ Key Then the Reply should be posted at the bottom of the thread of Replies of the Parent Comment and the Authors of the Post and Parent Comment should receive a Notification on the Reply. Then the range of audience of the Reply will be bounded by the audience of the Parent Comment. Then the Authors of the Reply or the Post can choose to delete the reply but not edit it. Deleting a Reply is self contained; it will not take any effect on the Parent Comment or other Replies on the Reply thread. Any relevant Notifications will be deleted upon the removal of the Reply.
Feature: Like
Actors: Users attempting to react to a Post/Comment/Reply
Precondition: User is already logged in User is viewing a Post from the [Friend] Feed or [Anonymous] Feed in the Main Page or a Post Detail page
Trigger: User reads a Post/Comment/Reply
Scenario
(1) User scrolls through the [Friend] Feed or [Anonymous] Feed. (2) User reads a specific Post/Comment/Reply and decides to react to it. (3) User clicks on the [Like] button. (4) The number of Likes that the Post/Comment/Reply has received and the list of actors of the Likes will only be visible to the Author of the Post/Comment/Reply.
Exceptions:
User has already ‘Liked’ the Post/Comment/Reply beforehand.
Acceptance Test:
Given User is currently viewing a Post/Comment/Reply he/she wants to react with Like When the User clicks the [Like] Button Then the number of Likes that the Post/Comment/Reply has received will be increased and will only be shown for the author of the post. Then the actor of the Like can choose to undo the action by clicking on the [Like] button again. Notification that the recipient of the Author had received will also be removed upon undoing the action.
Feature: Private Comment
Actors: Users concerned about the audience of their Comments
Precondition: User is already logged in User is viewing a Post from the [Friend] Feed in the Main Page or a Post Detail page User is writing the Comment to their Friend’s Post, not an anonymized one
Trigger: User reads a Post in the [Friend] Feed that he/she wants to comment
Scenario
(1) User scrolls through the [Friend] Feed and decides to write a Comment to a specific Post. (2) User enters some contents to the Comment Input Area. (3) The User feels that the Comment should rather be shared only with the Author of the Post. (4) User clicks on the [Private] Toggle Button and posts the Comment. (5) The Comment can only be viewed by the Author of the Post and the User him/herself. Other Users will not be able to recognize the presence of the Private Comment.
Exceptions:
User does not input any content in the Comment Section.
Acceptance Test:
Given the User has entered some content to the Comment Section and clicks on the [Private] Toggle Button When the User clicks on the [Enter] Button or presses the ‘Enter’ Key Then the Comment should be posted at the bottom of the list of Comments of the Post that belong to the Post. The recipient of the Comment (i.e. Author of the Post) will receive a Notification on the Private Comment. Then the Private Comment will only be visible to the User and the recipient of the Comment. Then the Authors of the Private Comment or the Post can choose to delete the Private Comment but not edit it. Deleting the Private Comment will remove any Replies to itself. Notification that the recipient of the Author had received will also be removed upon the deletion of the Private Comment.
Feature: Send Question to Friend
Actors: Users that are curious about their Friends’ Responses to a certain Question.
Precondition: User is already logged in User cannot remember that the Friend had written a Response on the Question User is viewing a Question from the [Question] Feed or a Modal (that is rendered upon clicking on the Notification on ‘Daily Question’ update) on ‘Daily Questions’ or the [Question List] Widget
Trigger: User clicks on the [Request Response] Button
Scenario
(1) User reads a Question and wishes to request a Response from his/her Friend. (2) User clicks on the [Request Response] Button and a list of the User’s Friends with a [Request] Button next to each of the Profile Icon and username pops up as a Modal. (3) The User sends a request to the Friend by clicking on the [Request] Button next to the Friend’s Profile Icon. (4) The Friend receives a Notification on the request and the User receives a Notification when the Friend responds to the Question.
Acceptance Test:
Given User has clicked on the [Request Response] Button to a specific Question When User clicks on a [Request] Button from the list of the User’s Friends Then the Friend should receive a request to respond to the Question in the form of a Notification. When the Friend clicks on the Notification on the request Then the friend will be prompted to write a Response on the Question. If the Friend chooses to write the Response, the User will receive a Notification on the Response. The User may not undo the request. However, the Friend may choose to delete the Response on the Question, in which case the Notification on the Response will also be removed.
Feature: View and Accept Friend Request
Actors: Members of adoor
Precondition: User is already logged in. User has received a Friend Request(s)
Trigger: User clicks on the Notification Icon
Scenario
(1) If there is new Notification, Notification Badge with the number of new Notifications is visible at the right upper side of Notification Icon. (2) Notification Panel will be opened after clicking on the Notification Icon. (3) User can see Friend Request(s) with the sender’s basic information: username and Profile Icon (4) When the User clicks on the Friend Request, he/she will be redirected to the Notification Page. Friend Request tab is selected by default. (5) The User can visit the sender's Profile Page by clicking on the Profile Icon of the sender. (6) The User can accept or ignore the Friend Request or delete the Notification. (7) If the User accepts the Friend Request, the sender is added to the User's Friend List. (8) The Notification will be marked as read.
Exceptions:
The Friend Request sender’s account is deleted.
Acceptance Test:
Given User has new Friend Request(s) When User clicks on the Notification Icon Then the user should be able to see a new Friend Request(s). When clicking on the sender’s Profile Icon Then the User should be redirected to the Notification Page with Friend Request tab selected by default. When the User accepts the Friend Request, Then the Friend Request sender will be added to the User’s Friend List.
Feature: Setting an audience to Post
Actors: Those who want to share their Posts with a specific audience of adoor.
Precondition: User is already logged in User is writing a Post(which includes Response or an Article)
Scenario
(1) User writes a Post. (2) User decides to share the Post with a specific audience - (1) with all Users of *adoor* anonymously, (2) with the User’s Friends, or (3) both of the aforementioned. (3) After the User writes something in the Input Area, he/she can set an audience to the Post he/she is currently writing. (4) A Post is shared with the audience group (3) by default with both the [Share with Friends] Toggle Button and [Share Anonymously] Toggle Button ON. In other words, all Users including non-Friends can view the Post upon submission. (5) The User and his/her Friends will be able to view the Post in the [Friend] Feed of the Main Page. (6) Other Users (i.e. non-Friends) will be able to view the post from the [Anonymous] Feed of the Main Page. (7) The User will also be able to access it from the My Profile Page. (8) The Post is shared in both [Friend] Feed and [Anonymous] feeds by default; anyone who wishes to modify the audience group should be able to do so by clicking on the Toggle Buttons: [Share Anonymously] or [Share with Friends].
Exceptions:
User leaves the Input Area empty.
Acceptance Test:
Given User has written something in a [Write Post] or [Write Response] Input Area. When User clicks [Submit] Button by not modifying the Toggle Buttons Then the Post should be shared with the Author and his/her Author’s Friends on the [Friend] feed and all other Users of *adoor* on the [Anonymous] Feed anonymously. When User clicks on the [Share Anonymously] or [Share with Friends] Toggle Buttons. Then the Post should not be shared with Users other than the Author and his/her Friends or the Author’s Friends, respectively.
Feature: View Friends’ Posts
Actors: Members of adoor who is logged in
Precondition: User is already logged in. User has one or more Friends.
Trigger: User accesses to the Main Page and [Friend] Feed is selected by default.
Scenario
(1) User can browse his/her Friends’ Posts and his/her own Posts and the Posts are ordered in the latest order. (2) In the [Friend] Feed, User can view all of the Posts of him/herself and his/her Friends: Responses, Articles and also Comments. (3) Comments of a specific Post will be shown right below the Post. (4) User can Like or undo the Like to the Friends’ Posts by clicking the Like Icon. (5) User can write Comments to the Post or Replies to the Comment.
Exceptions:
The Author of the Post deletes the Post after the User has gotten the contents of the Post, while the User was making reactions (Like or undo the Like) or writing Comments
Acceptance Test:
Given User is logged in When User accesses to the Main Page or selects [Friend] Feed Then fetching Friends’ Post API should be called Then the User should be able to see Posts of him/herself and his/her Friends’ Posts, and all the Posts should be ordered in the latest order by uploaded datetime. Then the User should be able to view contents of the Post: Responses, Articles and Comments Then the User should be able to make reactions: Like or undo the Like
Feature: Write an Article
Actors: Members of adoor who is logged in
Precondition: User is already logged in. User is currently in the Main Page with [Friend] Feed or [Anonymous] Feed selected
Scenario
(1) User is in the Main Page with [Friend] Feed or [Anonymous] Feed selected (2) User wants to write an Article (without Question) about something (3) Regardless of which Feed the User is in (between the [Friend] Feed and [Anonymous] Feed), there is an Input Area that the User can write something in. (4) When the User finishes writing an Article and setting an audience for the content, he/she can click [Submit] Button to submit the Article. (5) After submitting the Article, the Article is added in the Feed(s). (6) Then the User should be able to view all the Posts of the Feed the User is currently in including the Article the User submitted right before.
Exceptions:
User typed nothing in the Input Area.
Acceptance Test:
Given User is logged in and wants to write an Article When User is currently in the [Friend] Feed and submitted it by clicking [Submit] Button Then the User should be able to view his/her own Article in the Feed that the User set before clicking [Submit] Button.
Feature: Write an Custom Question
Actors: Members of adoor who is logged in
Precondition: User is already logged in. User is currently in the Main Page
Scenario
(1) User is in the Main Page (2) User wants to write his/her own Custom Question and get curious about what other users would answer (3) User types his/her Custom Question content in the Custom Question Input Area. (4) When the User finishes writing a Custom Question and the User can set an audience for the Custom Question by toggling on the [Share Anonymously] and [Share with Friends] Toggle Button. (5) Then the User can click [Submit] Button to submit the Custom Question. (6) After submitting the Custom Question, it will be added to the Feed(s) as the Author of the Custom Question according to the audience the User set before the submission (7) The Custom Question the User made will be also added to the list of Questions in the [Question] Feed by default (8) Then the User should be able to view all the Posts (including Articles and Questions) of the Feed(s) including the Custom Question the User submitted right before.
Exceptions:
User typed nothing in the Custom Question Input Area.
Acceptance Test:
Given User is logged in and wants to write a Custom Question in the Main Page When User typed content of the Custom Question and clicked [Submit] Button Then the User should be able to view his/her own Custom Question in the Feed(s) according to the audience the User set before clicking [Submit] Button.