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.