Requirements Engineering - yurkka23/iMusic_team GitHub Wiki

User Stories

User Registration and Authentication

  • As a user, I want to register an account so that I can have a personal profile.
  • As a user, I want to log in using my username and password so that I can access my account.
  • As a user, I want to log out of my account to protect my data.
  • As a user, I want to recover my password in case I forget it.
  • As a user, I want to receive a confirmation email upon registration to activate my account.
  • As a user, I want to change my password from my account settings.
  • As a user, I want my password to be validated for complexity during registration.
  • As a user, I want my account to be temporarily locked after multiple failed login attempts.
  • As a user, I want to log in using Google or Email for convenience.
  • As an admin, I want to view the list of registered users.

Viewing Music Content

  • As a user, I want to view a list of recommended songs to discover new music.
  • As a user, I want to view a list of top songs to listen to trending music.
  • As a user, I want to browse new songs to find the latest releases.
  • As a user, I want to browse different music categories to find songs by genre.
  • As a user, I want to view available playlists to explore curated music collections.
  • As a user, I want to search for songs by title so that I can quickly find specific tracks.
  • As a user, I want to search for songs by artist to find music from my favorite performers.
  • As a user, I want to search for songs by album to listen to full releases.
  • As a user, I want to see detailed information about a song (title, artist, album, duration).
  • As a user, I want to explore popular playlists created by other users or administrators.

Performance

  • As a user, I want my search results to appear within 5 seconds.
  • As a user, I want songs to load instantly when I click on them.
  • As a user, I want playlists to open without significant delays.

Security

  • As a user, I want my password to be stored in an encrypted format to prevent data leaks.
  • As a user, I want to enable two-factor authentication for additional security.

Reliability and Availability

  • As a user, I want the system to be available 24/7 so I can listen to music anytime.
  • As a user, I want to receive notifications about scheduled maintenance to be aware of temporary downtime.

Usability

  • As a user, I want the interface to be intuitive so that I can easily navigate the system.
  • As a user, I want the website to be optimized for desktop devices to ensure a seamless experience.

Modularity

  • As a developer, I want the system to have a modular architecture so that new features can be added easily.

User and Role Management

  • As an admin, I want to view user profiles.
  • As an admin, I want to edit user information.
  • As an admin, I want to delete user accounts.
  • As an admin, I want to block users who violate platform rules.
  • As a user, I want to update my personal information.
  • As a user, I want to delete my account if I no longer want to use the service.
  • As a user, I want to submit a request to become an "Artist" so that I can upload my own music.
  • As an admin, I want to review and approve or reject artist role requests.

Content Creation and Management

  • As an artist, I want to upload my songs to the platform.
  • As an artist, I want to create albums to organize my songs.
  • As a user, I want to create my own playlists.
  • As a user, I want to add songs to my playlists.
  • As a user, I want to view my list of favorite songs.
  • As a user, I want to view my list of favorite albums.

Content Moderation

  • As an admin, I want to delete songs that violate platform policies.
  • As an admin, I want to delete albums that violate platform policies.
  • As an admin, I want to delete playlists that contain inappropriate content.

Admin Control Panel

  • As an admin, I want a dedicated interface to manage all users.
  • As an admin, I want a dedicated interface to manage all songs.
  • As an admin, I want a dedicated interface to manage all albums.
  • As an admin, I want a dedicated interface to manage music categories.
  • As an admin, I want to change user account statuses.
  • As an admin, I want to receive reports from users about policy violations.
  • As an admin, I want to restore deleted songs in case of accidental removal.
  • As an admin, I want to monitor user activity statistics on the platform.