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.