Skip to content
forked from Manhattaa/Dreamify

A web-api and a client made with REST-arcitecture along with unit testing, connected to the Spotify API with Oauth2. A group project made as our final course project.

Notifications You must be signed in to change notification settings

Adrozs/Dreamify

 
 

Repository files navigation

Dreamify Logo

Dreamify™

Welcome to Dreamify. A project that involves creating a music themed Minimal API that uses the Spotify Open Access API

Table of Contents

Features

  • 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.

Getting started

Using the following instructions will get you the project up and running on your local machine for development and testing purposes.

Prerequisites

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.

Installing the project

A step by step series of examples that tell you how to get the app upp and running.

  1. Clone the repository (either with git bash or using the repository link).
git clone https://github.com/Manhattaa/Dreamify.git
  1. Navigate to the project directory (if using git bash)
cd Dreamify
  1. Build the project (if using git bash)
dotnet build

Endpoints

GET endpoints

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" ]

POST endpoints

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"

Credit & References

Built with

  • C# - Programming language
  • MS SQL - Database
  • Entity Framework - ORM
  • ASP.NET Core

Meet Dreamify

About

A web-api and a client made with REST-arcitecture along with unit testing, connected to the Spotify API with Oauth2. A group project made as our final course project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 97.7%
  • HTML 1.8%
  • Other 0.5%