-
Notifications
You must be signed in to change notification settings - Fork 1
Requirements
Nurullah UÇAN edited this page Apr 29, 2024
·
43 revisions
- 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.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 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 shall be able to view and edit their account information, including username, email address, profile picture (optional), bio (optional).
- 1.1.1.2.2 Members shall be able to control their privacy settings, such as who can see their posts and profile information (e.g., public, friends only)
- 1.1.1.2.3 Members shall be able to control whether their profile appears in search results
- 1.1.1.2.4 Members should be able to block other users
- 1.1.1.2.5 Members should be able to unblock the blocked users
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, images and videos.
- 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 Member shall be able to delete their posts and comments.
- 1.1.1.4.5 Members should be able to follow other members.
- 1.1.1.4.6 Members should be able to unfollow the following members
- 1.1.1.4.7 Members should be able to bookmark both their own posts and those made by other members.
- 1.1.1.4.8 Members should have the option to remove bookmarks from both their own posts, as well as those made by other members.
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
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 refresh automatically to show the latest posts.
- 1.2.1.3 The main page shall feature a scroll option for viewing older posts.
- 1.2.1.4 The main page shall include two separate feeds: Following Feed and Today's Hot Feed.
- 1.2.1.5 Users shall have the option to toggle between the Following Feed and Today's Hot Feed to customize their viewing experience.
- 1.2.1.6 Today's Hot Feed shall dynamically update throughout the day based on real-time engagement and popularity metrics, ensuring freshness and relevance.
1.2.2 Team pages
- 1.2.2.1 Each team's page shall showcase which conference 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, player's current team, position, jersey number, height, age and social media account.
- 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 several results for each query.
- 1.2.4.3 Search shall return link to team and player pages if the query matches team or player's name.
- 1.2.4.4 Search shall use Wikidata API to find the names of NBA players and teams
- 1.2.4.5 Search should return the possible similar results if cannot achieve to find a successful result.
- 1.2.4.6 If the current page is displaying posts in some filtered manner search should work on that domain.
- 1.2.4.7 Users should be able to create advanced filters (date, user, only followed pages) 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.
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.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.
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 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 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.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.
- Berat Yılmaz
- Bilge Kaan Güneyli
- Murat Can Kocakulak
- Zeynep Buse Aydın
- Nurullah Uçan
- Ceyhun Sonyürek
- Ahmet Batuhan Canlı
- Talha Ordukaya
- Miraç Öztürk
- Scenario 1: Logging in and Seeing Posts
- Scenario 2: Posting an Exercise Program
- Scenario 3: Posting a Diet Program
- Scenario 4: Rating Another User's Programs
- Scenario 5: Chatting with Another User