352 Requirements - bounswe/bounswe2024group5 GitHub Wiki

Glossary

  • User: A person who uses the application with the intention of interacting with various features.
  • System: The underlying set of functionalities that allow users to interact with the app.
  • Register: The process of creating an account on our platform. This will allow users to interact with the app.
  • Login: The initial authentication step where the user provides the necessary credentials to gain access to the app.
  • Post: User-generated, music-related content, which can be text, image, or video.
  • Feed: A stream of music-related posts from users' followed tags and users that the user sees after logging into the app as their home page.
  • Tags: Keywords that are associated with posts. Tags simplify the filtering process.
  • Like: A feature that allows the user to mark a post with his or her appreciation. This feature also allows the system to prepare various personalized experiences.
  • Follow: A feature that keeps the user up to date on the latest posts from the followed tag or user.
  • Search: A tool within the app that allows users to find their interested tags or accounts. This tool functions the same way that semantic browsers do. This tool uses the Wikidata API for external data.
  • Profile: A user's personal page that displays their shared contents and public information.

1. Functional Requirements

1.1. User Requirements

1.1.1. Account Requirements
  • 1.1.1.1 The account shall have a unique username associated with the user. The username will be able to be changed once in a while (like 90 days).
  • 1.1.1.2 The account shall have a changeable and publicly available name (and surname) associated with the user.
  • 1.1.1.3 The account shall have a changeable and publicly available profile picture associated with the user.
  • 1.1.1.4 The account shall have a field of users' linked accounts of social media and music providers which are willingly shared, either with the public or with their followers.
  • 1.1.1.5 The account shall have their follower lists that are optionally shared with the public.
  • 1.1.1.6 The account shall have an associated user profile that shows the post history of the user, and in which users may prefer to present the account details.
  • 1.1.1.7 The account's profile details shall be able to be changed with a profile details page, in which the user can also edit their general account information.
  • 1.1.1.8 The account shall consist of the data that will help the system to identify and recommend relevant content to them.
1.1.2. Registration and Login Requirements
  • 1.1.2.1 The user shall be able to register to the system with the following pieces of information: username, name/surname, e-mail, and password.
  • 1.1.2.2 The account shall have passwords whose encrypted versions are securely stored in the system, along with an e-mail associated with the account to prevent easy spam accounts and to also ensure account recovery.
  • 1.1.2.3 The system shall allow the user to change their passwords, either through the old password or through account recovery with e-mails.
  • 1.1.2.4 The system shall allow the user to simply log in with the entrance of username/e-mail and password information.
  • 1.1.2.5 The system shall allow for convenient measures of logging in without specifically registering to the site, especially through the music provider accounts, like Spotify, but also the general ones like Google or Meta.
1.1.3. Like and Comment Requirements
  • 1.1.3.1 Users shall like and leave comments on others' posts.
1.1.4. User-to-user Interaction Requirements
  • 1.1.4.1 Users shall be able to see other users' profiles.
  • 1.1.4.2 Users shall be able to follow other users.
  • 1.1.4.3 Users shall be able to block other users to prevent them from seeing their profile and posts.
  • 1.1.4.4 Users shall be able to specify the visibility of their profile and posts by either making it public or private.

1.2. System Requirements

1.2.1. Post Requirements
  • 1.2.1.1 A post shall contain one or more from the followings: an image, a text-body or a video.
  • 1.2.1.2 Users shall be able to post content of their choice in the context of music domain.
  • 1.2.1.3 In order to post content, user shall use one of the provided post templates.
  • 1.2.1.4 The post templates are designed as follows:
    • 1.2.1.4.1 musical instrument content
    • 1.2.1.4.2 song album content
    • 1.2.1.4.3 a nice view combined with embedded music content
    • 1.2.1.4.4 video (of a concert or playing instrument or singing) content
  • 1.2.1.5 Users shall be able to add relevant tags to their posts.
  • 1.2.1.6 Users shall be able to find relevant posts to current posts by its tag.
  • 1.2.1.7 Users shall be able to be directed to the profile of the owner of a specific post.
1.2.2. Search Requirements
  • 1.2.2.1 The system shall implement both semantic search and basic text search.

  • 1.2.2.2 The system shall allow users to search for other users.

    • 1.2.2.2.1 The system shall allow searching users by their username and name.
  • 1.2.2.3 The system shall allow users to search for music genre.

  • 1.2.2.4 The system shall allow users to search for events like concert.

    • 1.2.2.4.1 The system shall allow users to use music band, vocalist, name, date, location, and popularity to search an event.
  • 1.2.2.5 The system shall enable users to filter their searches.

    • 1.2.2.5.1 The system shall allow users to filter results based on vocalist, music band, name, release date, rating, and popularity.
  • 1.2.2.6 The system shall retain the previous searches of users who have the necessary permissions.

    • 1.2.2.6.1 The system shall allow users to delete their previous searches upon request.
  • 1.2.2.7 The system shall sort search results based on trends and location.

  • 1.2.2.8 The system shall provide search results based on users' favorite songs and previous searches.

  • 1.2.2.9 The system shall contain all of the above-written items in a separate search page.

1.2.3. Feed Requirements
  • 1.2.3.0 Users shall have a feed page that consists of the user's followed users and tags.

  • 1.2.3.1 The feed page shall refresh automatically to show the latest posts.

  • 1.2.3.2 Users shall be able to manually refresh the feed page for real-time updates.

  • 1.2.3.3 The feed page shall have a scroll feature to show older posts.

  • 1.2.3.4 The feed page shall have the post's functionalities, such as like and share, similar to the post's individual page.

  • 1.2.3.5 The feed page's refresh time shall be within an acceptable range.

  • 1.2.3.6 The feed page's loading time on posts, images, videos, and external links should be within an acceptable range.

2. Non-Functional Requirements

2.1 Compatibility
  • 2.1.1 The web app shall be compatible with the web browsers Chrome, Firefox, Safari, Edge and Opera.
  • 2.1.2 The mobile app for Apple devices shall be compatible with IOS 15 and up.
  • 2.1.3 The mobile app for Android devices shall be compatible with Android 9 and up.
2.2 Performance and Reliability
  • 2.2.1 The app shall load within 3 seconds when it is first opened.
  • 2.2.2 The backend shall return results to the frontend within 1 seconds.
  • 2.2.3 The server shall be up and responsive for the 99.9% of a month.
  • 2.2.4 The app shall support up to 1000 concurrent users during peak usage periods.
  • 2.2.5 The backend shall be horizontally scalable so that if the number of users go up, it is easy to add more servers.
  • 2.2.6 The search API shall return a quantity of at least 10 entries that are most closely related to the search at a time.
  • 2.2.7 The app shall work under unreliable network conditions.
2.3 User Friendliness
  • 2.3.1 The app shall provide user support channels such as FAQ, and contact mails.
  • 2.3.2 The app shall have an intuitive and user-friendly interface.
  • 2.3.3 The app shall enforce community guidelines to enforce positive interactions.
2.4 Debugging
  • 2.4.1 The app shall provide informative error messages to the users.
  • 2.4.2 The app shall log system error for debugging and troubleshooting.
2.5 Data Related
  • 2.5.1 The app shall provide users with privacy controls so that they can choose what information can be seen to whom.
  • 2.5.2 The app shall comply with the data protection laws.
  • 2.5.3 User data shall be encrypted when transferring in order to protect it from unauthorized access.
  • 2.5.4 The backend shall regularly back up user data to prevent data loss in case of system failures.

Authors

Umut, Arınç, Ebrar, Güney, Deniz, Süleyman

⚠️ **GitHub.com Fallback** ⚠️