Music Library is an innovative front-end application (SPA) designed for creating and managing music albums. This dynamic platform offers visitors an immersive experience to explore a vast catalog of albums. Upon registration, users gain access to personalized features, enabling them to craft their own album cards. Furthermore, album authors enjoy full control over their publications, with the ability to edit or delete entries at their convenience.
At Music Library, our mission is to provide a platform where music lovers can connect, discover, and share their passion for music. We strive to foster a vibrant community where creativity thrives and users can explore the vast and diverse world of music albums.
Join us on our journey to redefine the way people experience music. Whether you're a casual listener or a die-hard music enthusiast, there's something for everyone at Music Library.
- Browse Albums: Explore a vast collection of albums with ease.
- User Registration: Sign up with your email and password.
- Create Albums: Users can create their own album cards.
- Direct Content Management: Edit or remove your contributions at your discretion.
This section provides an overview of the various pages in the application and the corresponding permissions required.
The Home Page is accessible to all users without any specific permissions.
The Dashboard provides an overview of user-related information.
The Details page displays additional information about the application.
The Login page allows users to authenticate and access their accounts.
The Register page allows users to create new accounts.
The Add Album page allows authenticated users to add a new album, providing details such as Singer/Band, Album Name, Image URL, Release Date, Label, and Sales.
https://github.com/ViktorKrumov/Software-Project-Documentation.git
npm install
npm start
The Music Library is equipped with a suite of unit tests designed to ensure the reliability and stability of the application. These tests cover a range of functionalities, from user authentication to album management.
To run the unit tests for the Harmony Hub application, follow these steps:
-
Open the terminal in Visual Studio Code.
-
Type in the following command:
npm run test
-
After a few seconds, different tests will appear in the terminal.
http://localhost:3300/api-docs
-
GET /api/albums?order=release_date&dir=desc
:- Retrieves a list of albums, sorted by release date in descending order.
-
GET /api/albums/{albumId}
:- Fetches details for a specific album using its unique identifier.
-
POST /api/albums
:- Adds a new album to the collection. Requires a JSON payload with album details. Example payload:
{ "artist": "John Doe", "title": "New Horizons", "coverUrl": "https://example.com/new_horizons_cover.jpg", "releaseDate": "June 1, 2024", "recordLabel": "Indie Sounds", "sales": "500,000 copies" }
- Adds a new album to the collection. Requires a JSON payload with album details. Example payload:
-
PUT /api/albums/{albumId}
:- Updates details of an existing album. Send a complete JSON payload with all album details, including any changes. Example payload mirrors the POST endpoint.
-
DELETE /api/albums/{albumId}
:- Removes an album from the collection using its unique identifier.
-
POST /api/users/authenticate
:- Authenticates a user and returns a session token. Requires a JSON payload with user credentials. Example payload:
{ "username": "user123", "password": "securepassword" }
- Authenticates a user and returns a session token. Requires a JSON payload with user credentials. Example payload: