-
Notifications
You must be signed in to change notification settings - Fork 2
Requirements
İrem Zeynep Alagöz edited this page Jan 6, 2022
·
80 revisions
- Account: The whole structure that keeps the necessary data of users including username, password, communities, and posts.
- Admin: A person who has special privileges and is responsible for sustaining the system.
- Alphanumeric: A combination of alphabetical and numerical characters.
- Attributes: The features stored in data types.
- Basics: The collection of topics and features that are shared commonly in many platforms in the domain of our application.
- Comment: Text written by a user under a post.
- Common User: A registered user who has access to basic functionalities of the system without even joining a community.
- Community: A hub for sharing information among a group of members that have a common interest.
- Community Member: A person who is a member of a community.
- Community Moderator: A person who is the creator of the community or assigned by the moderator of the community and responsible for moderating the community.
- Copyright content: The content that needs to be protected from replication of its original properties.
- Database: The structured set of data-keeping everything about our application.
- Data type: The format and structure of posts about various topics in communities.
- Discussion: A post that enables the exchange of information between users.
- Downtime: The time during which the IT system is unavailable for service.
- Event: An activity that will take place at a specific time and place.
- Follow: The action of subscribing to see others’ posts and getting notifications about them.
- Home page: An introductory page that contains trending posts, posts of followed users/communities.
- Join: The action of subscribing to see community's posts, get notifications about them, and post new content.
- Notification: The updates that are signaled to the user in some special cases like user interactions, upcoming events.
- Offensive: The unacceptable acts of users in terms of violence or discrimination.
- Password: A string of characters to log into the application.
- Post: A content that is uploaded to the platform and corresponds to a chosen data type.
- Privacy of community: Accessibility of community content to users, can be private or public.
- Privacy of user: Users' preferences on whether their profile is private or public.
- Private community: Community that is available to access for invited members.
- Profile: A page that is associated with a specific user and provides personal information.
- Public community: Community that is available to access for any user.
- Read-only: A data that is available for viewing but not modification.
- Recommendation: System that suggests posts and communities based on the preferences of the user.
- Registered User: A person who has completed the signup process.
- Registration: The official procedure to create an account in the application.
- Report: Filing a complaint against a user or post.
- Response time: The duration until the system responds to a user request.
- System: The entire application with all features and implementation, for both web and Android.
- Search bar: The structure that users make use of when they want to look for other users, communities, or keywords.
- Privacy Policy and User Agreement: The collection of ground rules and commitments that users need to agree on before registering into the application.
- Tag: A descriptive phrase that can be attached to any post.
- User: Anyone who benefits from the platform as a registered or admin.
- Username: The unique string for user identification.
- User interaction: Any means of communication that occurs between users.
- User roles: A title that defines the user's status and accessible actions on the platform.
- Wikidata: A free knowledge base that can be accessed and edited by everyone.
- Visible: Eligible to view, not concealed.
<\p>
-
1.1.1. Registration
- 1.1.1.1. Users shall be able to register by providing a valid username, e-mail address, and password and accepting the terms of GPDR and KVKK.
- 1.1.1.2. After completing step 1.1.1.1, users shall validate their e-mail addresses to complete the registration process.
-
1.1.2. Login/Logout
- 1.1.2.1. Users shall be able to log in via their registered username/e-mail address and password.
- 1.1.2.2. Users shall be able to log out after logging in.
-
1.1.3. Account Management
- 1.1.3.1. Users shall be able to change their passwords with a new password.
- 1.1.3.2. Users should be able to delete their accounts.
-
1.1.4. Profile
- 1.1.4.1. Users shall have their usernames and default grey picture on their profile pages.
- 1.1.4.2. Users shall be able to add profile pictures to their profile pages.
- 1.1.4.3. Users shall be able to add/edit their personal information to their profile pages. Personal information shall include name, bio, birthday, location.
- 1.1.4.4. Users shall have public profiles as default.
- 1.1.4.5. Users shall be able to change the privacy setting (public or private) of their birthdays, profile pictures, location, and bio.
-
1.2.1 Search & Filter
- 1.2.1.1. Users shall be able to search for communities using a search bar.
- 1.2.1.2. Users shall be able to filter communities as implied in 2.4.3.
- 1.2.1.3. Users shall be able to search for posts using a search bar.
- 1.2.1.4. Users shall be able to filter posts as implied in 2.4.4.
- 1.2.1.5. Users shall be able to search for a data type using a search bar.
- 1.2.1.6. Users shall be able to filter data types as implied in 2.4.4.
-
1.2.2 Joining
- 1.2.2.1. Users shall be able to join communities to be able to post content and receive notifications about updates.
- 1.2.2.2. Users shall be able to turn on or off notifications.
- 1.2.2.3. Users shall be able to invite their friends to the community.
-
1.2.3 Posting Content
-
1.2.3.1. Users shall be able to share posts on communities.
- 1.2.3.1.1. Users shall be able to select a data type for their posts.
- 1.2.3.1.2. Users shall be able to include images, numbers, date, location and text as data type fields in posts.
- 1.2.3.2. Users shall be able to add tags to their posts.
-
1.2.3.3. Users shall be able to create new data types.
- 1.2.3.3.1. Users shall be able to define multiple attributes for data types. Attributes shall be images, numbers, date, location or text.
- 1.2.3.4. Users shall be able to see data types that exist in a community as a list.
-
1.2.3.1. Users shall be able to share posts on communities.
-
1.2.4 Liking & Commenting
- 1.2.4.1. Users shall be able to comment on posts.
- 1.2.4.2. Users shall be able to filter comments as implied in 2.4.5.
- 1.2.4.3. Users shall be able to reply to comments on posts.
- 1.2.4.4. Users shall be able to like posts on communities.
- 1.2.4.5. Users shall be able to like comments on posts.
-
1.2.5 Reporting
- 1.2.5.1. Users shall be able to report offensive & inappropriate posts.
- 1.2.5.2. Users shall be able to report offensive & inappropriate comments.
-
1.2.6 Creating
- 1.2.6.1. Users shall be able to create a community with a unique community name.
- 1.2.6.2. Users shall be able to add a picture for the community.
- 1.2.6.3. Users shall be able to add a description to the community.
- 1.2.6.4. Users shall be able to set the privacy of the community as public or private.
-
1.3.1. Search & Filter
- 1.3.1.1. Users shall be able to search for other users' profiles as 2.4.1 implies.
- 1.3.1.2. Users shall be able to sort/filter their search results on users' profiles as 2.4.2 implies.
- 1.3.1.3. Users shall be able to choose to view other users' profiles which are listed as search results.
-
1.3.2. Profile View & Follow
- 1.3.2.1. Users shall be able to view other users' private profiles which they follow and other users' public profiles.
-
1.3.2.2. Users shall be able to choose to follow other users' public profiles.
- 1.3.2.2.1 Users who have public profiles should get notifications when they are followed by other users.
-
1.3.2.3. Users shall be able to send a request to other users who have private profiles, to follow their profiles.
- 1.3.2.3.1 Users who have private profiles should get notifications when they are requested to get followed by other users.
- 1.3.2.4. Users shall be able to unfollow users which they follow already.
-
1.3.3.Private Messaging
-
1.3.3.1 Users shall be able to message other users.
- 1.3.3.1.1 Users should get notifications when they got messages from other users as 2.2.1 implies.
-
1.3.3.1 Users shall be able to message other users.
-
1.3.4. Reporting
- 1.3.4.1 Users shall be able to report other users who are behaving inappropriately.
- 1.3.4.2 Users shall be able to report community moderators.
-
1.4.1. Common Users
- 1.4.1.1 Common users shall complete the registration process as 1.1.1 implies.
- 1.4.1.2 Common users shall be able to view public user-profiles and community content read-only.
- 1.4.1.3 Common users shall be able to use searching functionality.
- 1.4.1.4 Common users shall be able to log in/log out as explained in 1.1.2.
- 1.4.1.5 Common users shall be able to manage their accounts as 1.1.3 implies.
- 1.4.1.6 Common users shall have a profile page as explained in 1.1.4.
- 1.4.1.7 Common users shall be able to join public communities directly.
- 1.4.1.8 Common users shall be able to send a request to join private communities.
-
1.4.2. Community Members
- 1.4.2.1. Community members shall be able to have all the privileges of a common user.
- 1.4.2.2. Community members shall be able to post content as explained in the 1.2.3 section except 1.2.3.3.
-
1.4.3. Community Moderators
- 1.4.3.1. Community moderators shall be able to have all privileges of community members.
- 1.4.3.2. Community moderators shall be able to create data types as explained in 1.2.3.3.
- 1.4.3.3. Community moderators shall be able to review reports.
- 1.4.3.4. Community moderators shall be able to remove posts, comments, users from their communities.
- 1.4.4.2. Community moderators shall be able to assign a new moderator.
- 1.4.4.3. Community moderators shall be able to change the community between public & private.
- 1.4.4.4. Community moderators shall be able to close their communities.
-
1.4.4 Admin Users
- 1.4.5.1. Admin shall be able to have all privileges of community moderators.
- 1.4.5.2. Admin shall be able to delete communities and also delete users
1.1. Basics
1.2. Community
1.3. User Interaction
1.4. User Roles
- 2.1.1. The system shall recommend communities and posts to users based on the communities they are member of and the posts they like.
- 2.1.2. The system shall provide trending posts and communities to users.
- 2.1.3. The system shall recommend the posts of followed users.
- 2.1.4. The system shall recommend the communities of followed users.
- 2.2.1. The system shall notify users when they get private messages.
- 2.2.2. The system shall notify users when their posts get a like.
- 2.2.3. The system shall notify users when someone comments on their posts.
- 2.2.4. The system shall notify community moderators when a user requests to join their private communities.
- 2.2.5. The system shall notify users when someone posts in a community they are a member of.
- 2.3.1. The system shall disable users if they try to perform unauthorized actions.
- 2.3.2. The system shall allow community moderators to create new data types.
- 2.3.3. The system shall not allow duplicate community names.
- 2.3.4. Users' accounts shall be deleted if they behave offensively.
- 2.4.1. The system shall have a semantic search mechanism.
- 2.4.2. The system shall allow users to sort other users by number of followers and filter by their communities.
- 2.4.3. The system shall allow users to sort communities by number of members, number of posts.
- 2.4.4. The system shall allow users to sort posts by the number of likes, dates, and filter by data types and tags.
- 2.4.5. The system shall allow users to sort comments by a number of likes and dates.
- 2.4.6. The system shall allow users to filter results as communities, users, and posts.
- 2.4.7. The semantic taggings should be supported with Wikidata.
- 2.5.1. In the case of a password change attempt, the system should send a verification code to the e-mail address of the account owner.
2.1. Recommendation
2.2. Notification
2.3. Community
2.4. Searching / Filtering / Sorting
2.5. Security
- 3.1.1. User names and e-mails for registrations shall be valid and unique for each user.
- 3.1.2. Passwords shall be 8-16 characters long and must not contain special characters.
- 3.1.3. Passwords shall be encrypted with SHA-256 before being stored in a database.
- 3.3.1. Respond times shall not exceed 3 seconds.
- 3.3.2. Downtime occurrence shall not be more than once in a month.
- 3.3.3. The platform shall support up to 10000 simultaneous users. This number should be scalable when necessary.
- 3.4.1. System shall be accessed via Android based mobile application and web application compatible with modern browsers.
- 3.4.2. Platform should support the English language.
- 3.4.3. Platform should support all ASCII symbols and Turkish symbols.
- 3.5.1. The implementation should obey the guidelines of W3C Activity Stream Standard 2.0.