Skip to content

Requirements

Bilge Kaan Güneyli edited this page Mar 18, 2024 · 43 revisions

Glossary

  • Guest: Guest is a user who use the software without signing up
  • Main Page:
  • Member: Member is a user who has previously signed up
  • Platform: A software or hardware-based system designed to serve a specific purpose, enabling users to perform certain functions.
  • Player: A player in NBA league that has his own page in which relevant information about the player can be found.
  • Post:
  • Team: A team in NBA league that has its own page in which relevant information about the team can be found.
  • User: Individual that interacts with the software to perform tasks, access information, or utilize its features.

1. Functional requirements

1.1 User requirements

1.1.1 Member requirements

1.1.1.1 Authentication
  • 1.1.1.1.1 Users shall be able to sign up to the platform with a valid email address and a password that contains at least 8 characters, including at least 1 number, 1 special character, 1 uppercase and 1 lowercase letter.
  • 1.1.1.1.2 Users shall choose a unique username that can only contain upper or lowercase letters, numbers and underscore while signing up.
  • 1.1.1.1.3 Users shall be able to log in to their account via providing their email address and password, or username and password.
  • 1.1.1.1.4 Users shall be able to reset their password if they forget it and can provide their account's email address or unique username.
  • 1.1.1.1.5 Users shall be able to change their password, username or email address when they are logged in.
  • 1.1.1.1.6 Users shall be able to log out.
1.1.1.2 Account
  • 1.1.1.2.1 Members should be able to view and edit their account information, including username, email address, profile picture (optional), bio (optional).
  • 1.1.1.2.2 Members should be able to set their notification preferences, such as email notifications for comments, likes, and mentions, frequency of receiving notifications (e.g., daily, weekly), choosing notification types (e.g., email, in-app).
  • 1.1.1.2.3 Members should be able to control their privacy settings, such as who can see their posts and profile information (e.g., public, friends only), whether their profile appears in search results, Ability to block other users.
1.1.1.3 Member activities
  • 1.1.1.3.1 Members shall be able to do all the activities listed in the 1.1.2.1 Guest activities section.
  • 1.1.1.3.2 Members shall be able to create posts containing text, images and videos.
  • 1.1.3.2.3 Members should be able to like and comment on other member posts, and should be able to like other user's comments.
  • 1.1.3.2.4 Member should be able to delete their posts and comments.
  • 1.1.3.2.5 Members should be able to follow other members.

1.1.2 Guest requirements

1.1.2.1 Guest activities
  • 1.1.2.1.1 Guests shall be able to view the main page.
  • 1.1.2.1.2 Guests shall be able to view the user posts, the team and player pages.
  • 1.1.2.1.3 Guests shall be able to access the user posts through the main page.

1.2 System requirements

1.2.1 Main page
  • 1.2.1.1 The main page should display the posts of users about the teams and the players.
  • 1.2.1.2 The main page should refresh automatically to show the latest posts.
  • 1.2.1.3 The main page should feature a scroll option for viewing older posts.
  • 1.2.1.4 The main page should maintain acceptable refresh and loading times for posts, images, videos, and external links.
1.2.2 Team pages
  • 1.2.2.1 Each team's page should showcase which conference the team is playing in, head coach of the team, team's stadium and location.
1.2.3 Player pages
  • 1.2.3.1 Each player's page should showcase which teams the player had played for, player's current team, position, jersey number, height, age and social media account.
1.2.4 Search constraints
  • 1.2.4.1 Users shall be able to semantically search for queries regardless of them being a guest or member.
  • 1.2.4.2 Search shall return several results for each query.
  • 1.2.4.3 Search should return a possible similar results if cannot achieve to find a successful result.
  • 1.2.4.4 Users should be able to create filters to decide the domain of their search
1.2.5 Posts
  • 1.2.5.1 Posts shall support having text, images, and videos and contain user-curated content.
  • 1.2.5.2 Posts shall have redirections to information pages about teams and players.
  • 1.2.5.3 The redirections to information pages shall be created by the system and shall trigger when a certain keyword (e.g. player name, team name) is present in the content of a post.

2. Non-functional requirements

2.1 Accessibility & Availability
  • 2.1.1 The platform shall be available in English and designed to support localization for additional languages in the future.
  • 2.1.2 The platform shall support UTF-8 character encoding to accommodate a wide range of characters and symbols.
  • 2.1.3 The web interface and the Android application shall offer identical functionality and user experience parity.
2.2 Performance & Reliability
  • 2.2.1 The platform shall support at least [specific number] user accounts without performance degradation.
  • 2.2.2 The system shall respond to user requests within at most [specific time, e.g., 3] seconds under normal operating conditions.
  • 2.2.3 The platform shall perform a backup of the database every 24 hours, with the ability to restore data from any point within the last [specific number, e.g., 30] days.
2.3 Privacy
  • 2.3.1 The platform shall adhere to data protection regulations defined by the General Data Protection Regulation (GDPR) and the Turkish Personal Data Protection Law (KVKK).
  • 2.3.2 Users must be presented with and actively accept the Privacy Policy and User Agreement before account creation or data processing.
  • 2.3.3 Users shall receive immediate notification through [preferred methods, e.g., email, platform notification] when there are changes to data policies.
2.4 Security
  • 2.4.1 The platform shall exclusively use the HTTPS protocol for all data transmissions.
  • 2.4.2 The platform shall comply with modern Secure Sockets Layer (SSL) requirements, including [specify requirements, e.g., TLS 1.2 or higher].
  • 2.4.3 All sensitive user data, including passwords and personal information, shall be encrypted at rest and in transit using [specify encryption standards, e.g., AES-256].
2.5 Scalability
  • 2.5.1 The platform shall be designed to scale horizontally to handle increased load by adding more servers as needed without significant downtime.
  • 2.5.2 The database shall employ scalable structures and indexing strategies to facilitate quick data retrieval even as the dataset grows to [specify expected size, e.g., terabytes] of data.
  • 2.5.3 The platform shall accommodate an increasing number of simultaneous user connections, targeting a growth of [specify percentage] users per year.
2.6 Maintainability
  • 2.6.1 The codebase shall adhere to [specify coding standards, e.g., PEP8 for Python] to ensure readability and ease of maintenance.
  • 2.6.2 The platform shall be designed using a modular architecture to simplify updates and maintenance.
  • 2.6.3 Technical documentation shall be provided, detailing the system architecture, code, APIs, and third-party dependencies.
2.7 Compatibility
  • 2.7.1 The platform’s web interface shall be compatible with the latest versions of major browsers including Chrome, Firefox, Safari, and Edge.
  • 2.7.2 The Android application shall support Android [specific version range, e.g., 6.0 and above].
  • 2.7.3 The platform shall ensure API compatibility with at least the past two versions to support backward compatibility for third-party services and integrations.
Clone this wiki locally