Skip to content

๐Ÿ˜ƒ An Emotion-Based Music Recommendation System ๐Ÿ˜”

Notifications You must be signed in to change notification settings

HossamElghamry/Musiemotion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Musiemotion

-- ๐Ÿ˜ƒ An Emotion-Based Music Recommendation System ๐Ÿ˜” --

- Play Store (Android): https://play.google.com/store/apps/details?id=com.flarize.musiemotion&hl=en

- iOS version coming soon!

๐Ÿ“ฑ Front-End

Using Flutter , Provider and BLoC Pattern

[โœ”๏ธ] Five Different Emotion Options - Happy | Neutral | Meh | Down | Frustrated

[โœ”๏ธ] Feeling Lucky ๐Ÿ€ Option for a Lucky Recommendation

[โœ”๏ธ] Song Recommendation Data Retrieval using HTTP ๐ŸŒ and the Dedicated Back-End API

[โœ”๏ธ] Spotify OAuth Access Token ๐Ÿ” Authentication using Client Credentials Flow for Album Art ๐Ÿ–ผ๏ธ Retrieval

[โœ”๏ธ] Spotify Redirection ๐ŸŽง to Listen to the Desired Recommendation

[โœ”๏ธ] Clean BLoC Architecture Implementation

[โœ”๏ธ] Full Utilization of Provider

[โœ”๏ธ] Network Connectivity๐ŸŒ Checking

[โœ”๏ธ] Easy-to-Follow User Interface

๐Ÿ–ง Back-End

Using Python Flask , Heroku and K-Means Clustering

Spotify Dataset Link: https://www.kaggle.com/yamaerenay/spotify-dataset-19212020-160k-tracks

[โœ”๏ธ] Data preprocessing and segmentation using Python

[โœ”๏ธ] Emotion Classification and Labeling using K-Means Clustering

[โœ”๏ธ] API Deployment using Flask and Heroku @ https://musiemotion.herokuapp.com/(Emotion)/(NumberOfRecommendationsNeeded)

[โœ”๏ธ] Data Representation in JSON format

๐Ÿ”ง Building Requirements

  • Initiating Enviroment Variables

    • Create a .env file in the root directory of your Flutter project

    • The .env should include your Spotify for Developers App's Client ID and Client Secret in the following format:

      CLIENTID=<Your Client ID>
      CLIENTSECRET=<Your Client Secret>
      

๐Ÿ›‘ Disclaimers

  • No data is collected from the user nor the developer. The .env should be included in the .gitignore file when commiting
  • The first data retrieval process will take up to one minute for the Heroku enviroment to initialize
  • The normal recommendation retrieval process should not take more than 1 second

๐Ÿ—ƒ๏ธ To-Do List

[๐Ÿ”ฎ] Recommendation List Sorting Based on Different Parameters (Popularity, Duration, etc...)

[๐Ÿ”ฎ] More Emotions

[๐Ÿ”ฎ] Error Handeling

๐Ÿ–ป Screenshots

About

๐Ÿ˜ƒ An Emotion-Based Music Recommendation System ๐Ÿ˜”

Resources

Stars

Watchers

Forks

Packages

No packages published