GithubHelp home page GithubHelp logo

jasonflair / flair_vibes_tailor_v2 Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.29 MB

Home Page: https://flair-vibes-tailor.vercel.app/

HTML 3.11% JavaScript 71.25% CSS 25.64%
music nodejs react recommendation-system rest-api

flair_vibes_tailor_v2's Introduction

Vibes Tailor V2 - Music Recommender

A web application that allows you to submit your favorite song and get recommended songs that match your taste in music.

The Vibes Tailor is a music recommender I created for music enthusiasts who are looking for new music to listen to, and individuals who might have gotten tired of their music rotations (libraries and playlists). The music recommender requires the user to put in their favourite song, and then based on that song, it generates recommendations of songs they might like based on similarity of specific audio features like danceability, key (important because people often prefer certain keys in music, and it can affect the emotional response to a song), and tempo of the song submitted.

As someone who loves music, I've always been interested in the idea of creating a music recommendation system. So, when I reached the final phase of my ALX Africa/Holberton School software engineering foundations sprint where I was required to build a portfolio project, I decided to take go down the path of finally creating my own music recommender.

Link to the deployed product - Click Me

Prerequisites

  • Node.js
  • Tailwind CSS
  • React

Built With

  • Node.js - The server-side runtime environment
  • Tailwind CSS - This is a utility-first CSS framework used for simplifying the responsive web design process.
  • React - The project is built using the React JavaScript library, providing a robust and efficient front-end framework for dynamic rendering.
  • Spotify's api - Used to explore audio features and audio analysis of tracks

Data Source

The track details, audio features, and recommendations used in this project are provided by Spotify and harnessed through the Spotify API.

Getting Started

  1. Clone the repository:

    git clone https://github.com/JasonFlair/Flair_Vibes_Tailor_V2

  2. Change into the server-side of the directory:

    cd Flair_Vibes_Tailor_V2/node-app

  3. Install the required packages:

npm install

  1. Run the Node.js application for the api:

    CLIENT_ID='your_spotify_clientid' CLIENT_SECRET='your_spotify_clientsecret' nodemon app.js

How the product works

Step 1: Put In Your Favourite Song's Details

Put in the song you can't get enough of right now as well as the artiste who made the song.

a sample song is inputed in the form

Step 2: Hit The Submit button to Get Personalized Recommendations

FVT will use Spotify's trusted API with carefully selected paramters to generate songs tailored just for you.

Step 3: Listen and Enjoy

Check out the songs recommended and discover your new favourite artiste(s) or song(s)!.

recommendations are generated on screen for you

Recommendations is generated and rendered on screen for you.

Development

Coding for the music recommender project began on February 10th and is still on going as I'm always looking for ways to improve the application and provide better recommendations for users.

Trello board of the Flair Vibes Tailor Minimum Viable Product, as at the 20th of February.

Trello board of the Flair Vibes Tailor Minimum Viable Product, as at the 20th of February.

Technical Challenge During Development

While developing the Flair Vibes Tailor, I discovered that creating and maintaining a large music dataset which would have tons of songs with different audio features to be used for generating recommendations, was not practical for me as doing so was beyond my means and that it would be more efficient to use a live dataset that updates in real-time. Due to the fact that I had no knowledge of data science prior to development of the flair vibes tailor, I struggled with using any filtering technique like alternating least squares. This prompted me to find other solutions and I decided to circumvent the challenges by creating a web application that interacts with Spotify's API. This way, I was able to get a live and well maintained dataset, consisting of all the songs available on Spotify and I had access to their audio features. Using Spotify's API, I also had access to an endpoint that uses a combination of collaborative filtering as well as content-based filtering for recommendations as opposed to solely using collaborative filtering with alternating least squares which I found difficult to implement.

To implement this solution, I had to learn how to interact with the Spotify API and integrate it into the Flair Vibes Tailor. I spent several hours reading through documentation, watching YouTube videos, experimenting with different techniques, and troubleshooting errors. Eventually, I was able to successfully integrate the Spotify API into the application, and the result was a more efficient and accurate recommendation system.

Author

Chukwuemelie 'Jason Flair' Obumse. Email - [email protected], Twitter handle - My Twitter

flair_vibes_tailor_v2's People

Contributors

jason-ezenwa avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.