Skip to content
This repository was archived by the owner on Dec 24, 2025. It is now read-only.

Requirements

bekirkeldal edited this page Apr 18, 2021 · 80 revisions

Glossary

  • Account: The whole structure that keeps the necessary data of users including username, password, communities, and posts, etc.
  • Admin: A person who has special privileges and 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.
  • Block: Preventing another user to communicate by any means.
  • 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 Creator: A person who has created a community.
  • Community Member: A person who is a member of a community.
  • Community Moderator: A person 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 other’s or community's posts and getting notifications about them.
  • Home page: An introductory page that contains trending posts.
  • Notification: The updates that are signaled to the user in some special cases like user interactions, upcoming events, etc.
  • 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>

Functional Requirements

  • 1. User Requirements

    1.1. Basics
    • 1.1.1. Registration

      • 1.1.1.1. Users shall register by providing a valid username, e-mail address, and password.
        • 1.1.1.1.1. Valid password shall consist of 8-16 alphanumeric characters.
        • 1.1.1.1.2. Valid usernames and emails shall be unique.
      • 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.1.3. Users should also be able to join with their Google or Facebook accounts.
    • 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 should also be able to login with their provided Google or Facebook accounts.
      • 1.1.2.3. Users shall be able to log out after logging in.
    • 1.1.3. Account Management

      • 1.1.3.1. Users shall be able to reset their passwords.
      • 1.1.3.2. Users' accounts shall be deleted if they behave offensively.
      • 1.1.3.3. Users should be able to delete their accounts.
    • 1.1.4. Profile

      • 1.1.4.1. Users shall have a profile page.
      • 1.1.4.2. Users shall have their usernames and default grey picture on their profile pages.
      • 1.1.4.3. Users shall be able to add profile pictures to their profile pages.
      • 1.1.4.4. Users shall be able to add their personal information such as names, surnames, birthdays, and city to their profile pages.
      • 1.1.4.5. Users shall be able to edit the content of their profile pages.
      • 1.1.4.6. Users shall have public profiles as default.
      • 1.1.4.7. Users shall be able to change the privacy setting (public or private) of their:
        • 1.1.4.7.1. Birthdays
        • 1.1.4.7.2. Cities
        • 1.1.4.7.3. Profile pictures
        • 1.1.4.7.4. Posts

    1.2. Community
    • 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 in posts.
        • 1.2.3.1.3. Users shall be able to include links in posts.
        • 1.2.3.1.4. Users shall be able to include paragraphs in posts.
      • 1.2.3.2. Users shall be able to organize events on communities.
        • 1.2.3.2.1. Users shall provide event information such as time, location, description and requirements.
      • 1.2.3.3. Users shall be able to join discussions on communities.
      • 1.2.3.4. Users shall be able to add tags to their posts.
      • 1.2.3.5. Users shall be able to create new data types.
        • 1.2.3.5.1. Users shall be able to define multiple attributes for data types.
      • 1.2.3.6. Users shall be able to see data types that exist in a community as a list.
    • 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. User Interaction
    • 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 filter their search results on users' profiles as 2.4.2 implies.
      • 1.3.1.3. Users shall be able to sort their search results (Needed to ask).
      • 1.3.1.4. 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 request to other users who has 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.2.5. Users shall be able to block other users to restrict them from seeing their profiles and following their profiles.
    • 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 message from other users as 2.2.1 implies.
      • 1.3.3.2 Users shall be able block other users to restrict them from sending message to them.

    1.4. User Roles
    • 1.4.1. Users

      • 1.4.1.1 Users shall complete the registration process as 1.1.1 implies.
      • 1.4.1.2 Users shall be able to view public user-profiles and community content read-only.
      • 1.4.1.3 Users shall be able to use searching functionality.
      • 1.4.1.4 Users shall be able to log in/log out as explained in 1.1.2.
      • 1.4.1.5 Users shall be able to manage their accounts as 1.1.3 implies.
      • 1.4.1.6 Users shall have a profile page as explained in 1.1.4.
      • 1.4.1.7 Users shall be able to follow public communities directly.
      • 1.4.1.8 Users shall be able to send a request to join private communities.
    • 1.4.2. Community Members

      • 1.4.2.1 All features that are included in the 1.2.3 section are also for the community members.
    • 1.4.3. Community Moderators

      • 1.4.1.3.1. All features that are included in the 1.2.3 section are also for the community moderators.
      • 1.4.1.3.2. Community moderators shall be able to have all privileges of basic community members.
      • 1.4.1.3.3. Community Moderators shall be able to review reports.
      • 1.4.1.3.4. Community moderators shall be able to remove posts, comments, users from their communities.
      • 1.4.1.3.5. Community moderators shall be able to open discussions.
    • 1.4.4. Community Creators

      • 1.4.1.4.1. Community creators shall be able to have all privileges of community moderator.
      • 1.4.1.4.2. Community creators shall be able to assign a new moderator or remove existing moderators from their communities.
      • 1.4.1.4.3. Community creators shall be able to change community between public & private.
      • 1.4.1.4.4. Community creators shall be able to close their communities.
    • 1.4.5 Admin Users

      • 1.4.5.1. Admin shall be able to have all privileges of community creators.
      • 1.4.5.2. Admin shall be able to delete communities and also delete/block users
  • 2. System Requirements

    2.1. Recommendation
    • 2.1.1. The system shall recommend communities and posts to users based on the communities they follow 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. Notification
    • 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/dislike.
    • 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 enter their private communities.
    • 2.2.5. The system shall notify users when someone posts in a community they follow.
    • 2.2.6. The system shall allow users to mute these notifications.

    2.3. Community
    • 2.3.1. The system shall disable users if they try to perform unauthorized actions.
    • 2.3.2. The system shall allow community members to organize an event.
    • 2.3.3. The system shall warn community moderators if a post gets a predefined amount of reports.
    • 2.3.4. The system shall allow community moderators to pin a post.
    • 2.3.5. The system shall highlight the posts in a community based on their popularity.
    • 2.3.6. The system shall allow community moderators to create new data types.
    • 2.3.7. The system shall not allow duplicate community names.

    2.4. Searching / Filtering
    • 2.4.1. The system shall have a semantic search mechanism.
    • 2.4.2. The system shall allow users to filter/sort other users by:
      • 2.4.2.1. Number of followers
      • 2.4.2.2. Their locations
      • 2.4.2.3. Followed communities
    • 2.4.3. The system shall allow users to filter/sort communities by:
      • 2.4.3.1. Number of followers
      • 2.4.3.2. Number of posts
      • 2.4.3.3. Popularity
      • 2.4.3.4. Tags
    • 2.4.4. The system shall allow users to filter/sort posts by:
      • 2.4.4.1. Number of likes
      • 2.4.4.2. Number of comments
      • 2.4.4.3. Date
      • 2.4.4.3. Data type
    • 2.4.5. The system shall allow users to filter/sort comments by:
      • 2.4.5.1. Number of likes
      • 2.4.5.2. Date

    2.5. Home Page
    • 2.5.1. The system shall show a search bar, tabs and trending posts in the home page.

Non-Functional Requirements

    3.1. 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 database.
    • 3.1.4. Database system shall be protected against cyber-attacks.
    • 3.1.5. In the case of a log in attempt from a different device, a verification code should be sent to the e-mail address of the account owner.
    • 3.1.6. In the case of a password change attempt, a verification code should be sent to the e-mail address of the account owner.

    3.2. Privacy
    • 3.2.1. System shall obey the rules defined by GPDR and KVKK.
    • 3.2.2. System should provide the mechanisms to preserve the uniqueness of Copyright contents.
    • 3.2.3. Users must agree to Privacy Policy and User Agreement before registration.

    3.3. Performance and Reliability
    • 3.3.1. Respond times shall not exceed 3 seconds.
    • 3.3.2. If an error occurs, the problem should be fixed within an hour.
    • 3.3.3. Downtime occurance shall not be more than once in a month.
    • 3.3.4. The platform shall support up to 10000 simultaneous users. This number should be scalable when necessary.

    3.4. Accessibility and Availability
    • 3.4.1. System shall be accessed via Android based mobile application.
    • 3.4.2. System shall be accessed via web application which is supported by modern web browsers such as Chrome, Firefox, Opera and Safari.
    • 3.4.3. Platform should support English language.
    • 3.4.4. Platform should support all ASCII symbols and Turkish symbols.

    3.5. Standards

Clone this wiki locally