Final Software Requirement Specifications - bounswe/bounswe2024group4 GitHub Wiki

Glossary

  • Account: A personal digital space on the platform, typically requiring authentication with a username and password, where members can manage their preferences, access personalized content, and interact with platform's features.
  • Authentication: The process of verifying the identity of a user or entity attempting to access a system, network, or service.
  • Comment: A response that users write under posts on the platform to share their thoughts or react to content.
  • Filter: Tools or options provided within the platform's searching function enabling users to refine search results based on specific criteria.
  • Following Feed: Displays posts from users that the current user follows, prioritizing content from followed users.
  • Guest: Guest is a user who use the software without signing up.
  • Like: A feature on the platform that users use to express appreciation or agreement with a post or content shared by others.
  • Main Page: Page where the feed of posts are located.
  • Member: Member is a user who has previously signed up.
  • Mention: The act of tagging or referring to another user in a post or comment on the platform.
  • NBA: National Basketball Association, which is premier professional basketball league in North America, featuring 30 teams.
  • Password: A secret code that a user creates to protect their account on the platform.
  • Platform: A software or hardware-based system designed to serve a specific purpose, enabling users to perform certain functions.
  • Player Page: A page on the platform dedicated to providing information about a specific athlete who competes professionally in the National Basketball Association (NBA).
  • Post: Content created and shared by a member.
  • Profile: A member's personal page on the platform where they share information about themselves and interact with others.
  • Search: Functionality within a platform that enables users to find specific content, profiles, information pages or topics of interest by entering keywords or using filters.
  • Sign Up: The process of creating a new account on the platform.
  • Team Page: A page on the platform dedicated to providing information about a specific professional basketball franchise who competes professionally in the National Basketball Association (NBA).
  • Today's Hot Feed: Displays posts based on current popularity, trending topics, and engagement metrics, providing users with a snapshot of the most relevant and popular content for the day.
  • User: Individual that interacts with the software to perform tasks, access information, or utilize its features.
  • Username: An identifier chosen by members to represent themselves on the platform.

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 an 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 username and password.
  • 1.1.1.1.4 Users shall be able to change their password, username or email address when they are logged in.
  • 1.1.1.1.5 Users shall be able to log out.
1.1.1.2 Account
  • 1.1.1.2.1 Members shall be able to view their account information, including profile picture, email address, bio, number and list of followers and people they follow.
  • 1.1.1.2.2 Members shall be able to edit their account information, including profile picture (only from web), email address, bio.
1.1.1.3 User activities
  • 1.1.1.3.1 Users shall be able to view the main page.
  • 1.1.1.3.2 Users shall be able to view the user posts, the team and player pages.
  • 1.1.1.3.3 Users shall be able to access the user posts.
1.1.1.4 Member activities
  • 1.1.1.4.1 Members shall be able to do all the activities listed in the 1.1.2.1 Guest activities section.
  • 1.1.1.4.2 Members shall be able to create posts containing text and images.
  • 1.1.1.4.3 Members shall be able to like and comment on other member posts, and should be able to like other member's comments.
  • 1.1.1.4.4 Members should be able to follow other members.
  • 1.1.1.4.5 Members should be able to unfollow the following members
  • 1.1.1.4.6 Members should be able to bookmark both their own posts and those made by other members.
  • 1.1.1.4.7 Members should have the option to remove bookmarks from both their own posts, as well as those made by other members.

1.1.2 Guest requirements

1.1.2.1 Guest activities
  • 1.1.2.1.1 Guests shall be able to common user activities listed in 1.1.1.3 except for viewing user posts

1.2 System requirements

1.2.1 Main page
  • 1.2.1.1 The main page shall display the posts of users about the teams and the players.
  • 1.2.1.2 The main page shall feature a scroll option for viewing older posts.
  • 1.2.1.3 The main page shall include the Following Feed.
1.2.2 Team pages
  • 1.2.2.1 Each team's page shall showcase which conference and division the team is playing in, head coach of the team, team's stadium and location.
  • 1.2.2.2 The information that is mentioned on 1.2.2.1 about each team shall be fetched from Wikidata API.
1.2.3 Player pages
  • 1.2.3.1 Each player's page shall showcase which teams the player had played for with years, position, height, date of birth, Instagram account and awards the player had received with years.
  • 1.2.3.2 The information that is mentioned on 1.2.3.1 about each player shall be fetched from Wikidata API.
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 user posts that contain the query.
  • 1.2.4.3 Search shall return link to team and player pages if the query is contained in some team or player's name.
  • 1.2.4.4 Search shall use Wikidata API to find NBA players and teams
  • 1.2.4.5 Search shall be returning results if they contain the query text.
  • 1.2.4.6 Search shall not accept queries less that three letters to prevent bad usage.
1.2.5 Posts
  • 1.2.5.1 Posts shall support having text and contain user-curated content.
  • 1.2.5.2 Posts shall support having images from the webpage.
  • 1.2.5.3 Posts shall have redirections to information pages about teams and players in the webpage.
  • 1.2.5.4 The redirections to information pages shall be created by the system with the user specifying the word to be investigated by the system.
1.2.6 Profile Page
  • 1.2.6.1 Each user shall have a profile page.
  • 1.2.6.2 Each user shall be able to view other people's profile pages as well as his/her own including their profile information: that user's profile photo, biography, number of followers and previous posts.

2. Non-functional requirements

2.1 Accessibility & Availability
  • 2.1.1 The platform shall be available in English.
  • 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 in main features.
2.2 Performance & Reliability
  • 2.2.1 The platform shall support at least 150.000 user accounts without performance degradation.
  • 2.2.2 The system shall respond to user requests within at most 4 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 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 obtaining SSL certificates from Let's Encrypt.
  • 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.4 Scalability
  • 2.5.1 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.2 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.
⚠️ **GitHub.com Fallback** ⚠️