Welcome to Dreamify. A project that involves creating a music themed Minimal API that uses the Spotify Open Access API
- User Management: Store users with unique usernames.
- Interest Tracking: Users can express their interests in genres, artists and songs. This information is stored locally, prompting for a personalized music experience.
- Data Retrieval: The API offers various endpoints for retrieving information. see Endpoints for further information.
- Connection Establishment: Users can connect themselves to genres, artists and songs by using dedicated endpoints.
Using the following instructions will get you the project up and running on your local machine for development and testing purposes.
-
.NET SDK (version .NET 6)
-
- EntityFrameworkCore (version 6.0.25)
- EntityFrameworkCore.SqlServer (version 6.0.25)
- EntityFrameworkCore.Tools (version 6.0.25)
-
An API development program such as Postman. Docker, Swagger, or our personal choice: Insomnia
Note
The project was developed using Visual Studio, but you can use your preferred IDE. Similarly, you can use your own SQL Server instance, ensuring compatibility with Entity Framework Core.
A step by step series of examples that tell you how to get the app upp and running.
- Clone the repository (either with git bash or using the repository link).
git clone https://github.com/Manhattaa/Dreamify.git
- Navigate to the project directory (if using git bash)
cd Dreamify
- Build the project (if using git bash)
dotnet build
Users endpoints
- /users - Get all Users
Ex: http://localhost:5094/users
- /users/{userId} - Get a specific user
Ex: http://localhost:5094/users/4
- /users-and-id - Gets all users names and id's
Ex: http://localhost:5094/users-and-id
Songs endpoints
- /songs - Get all songs
Ex: http://localhost:5094/songs
- /users/{userId}/songs - Get all songs connected to a specific user
Ex: http://localhost:5094/users/4
Artists endpoints
- /artists - Get all artists
Ex: http://localhost:5094/artists
Genres endpoints
- /genres - Get all genres
Ex: http://localhost:5094/genres
- /search/song/{search}/{offset?}/{countryCode?} - Get a list of songs via search query from Spotify's database
Ex: http://localhost:5094/search/song/Thunderstruck
Output: Top 10 search results
JSON structure:
"string" : "SpotifySongId"
"string" : "SongName"
"List" : "Artists" [
"string" : "SpotifyArtistId"
"string" : "ArtistName" ]
-
/search/artist/{search}/{offset?}/{countryCode?} - Get a list of artists via search query from Spotify's database
Ex:(http://localhost:5094/search/artist/Taylor Swift/3/SE)
Output: Top 10 search results skipping the top 3 filtered for the Swedish market
JSON structure:
"string" : "SpotifySongId"
"string" : "SongName"
"List" : "Artists" [
"string" : "SpotifyArtistId"
"string" : "ArtistName" ]
-
/users - Add a user with JSON
Ex: http://localhost:5094/users
JSON structure: "string" : "Username"
-
/songs - Add song with JSON
Ex: http://localhost:5094/songs
JSON structure: "string" : "Title"
-
/artists - Add artists with JSON
Ex: http://localhost:5094/artsts
JSON structure:
"string" : "Title"
"string?" : "Description"
"List<Genre?" : "Genres"
-
/artists - Add artists with JSON Ex: http://localhost:5094/artsts
JSON structure: "string" : "Title"
-
/users/{userId}/artists/{artistId} - Link a Specific User and Artist
Ex: http://localhost:5094/users/4/artists/6
- /users/{userId}/genres/{genreId} - Link a Specific User to a Genre
Ex: http://localhost:5094/users/11/genres/7
- /users/{userId}/songs/{songId} - Link a Specific User and Song*
Ex: http://localhost:5094/users/3/songs/9
-
/users/add-spotify-song - Connects a song with the spotify song and artist id to the users
Ex: http://localhost:5094/users/add-spotify-song
Json structure:
"int" : "UserID"
"string" : "SongName"
"string" : "SpotifySongId"
"string" : "ArtistName"
"string" : "SpotifyArtistId"
- C# - Programming language
- MS SQL - Database
- Entity Framework - ORM
- ASP.NET Core
- Fady Hatta - Manhattaa
- Adrian Rozsahegyi - Adrozs
- Malin Nyberg - MalinNyberg
- Fredrich Benedetti - Shakejelly