- Team discusisson doc
- Build an UI grab user's song taste via
Tinder like
process, then train a ML model from user taste data, then predict the potentail users liked songs via the classification from ML model, finally call theSpotify recommendation API
then get the playlist of the songs that fit such user classification
-
Architecture Idea
- dev
-
Workflow
User rate the songs ---> detector ---> Model_training ---> Spotify_ML_API ---> recommended_playlist ---> Web_UI
├── [1.8k] README.md
├── [3.1k] collect_data.py : Script collect data (/data)
├── [ 160] data : Scraped data for model training
├── [ 613] install.sh : Bash help install needed environment
├── [3.3k] server.py : Script hold server-side services (Python flask)
├── [ 192] templates
│ ├── [9.4k] client.js : Script hold client-side services (playlist..) (JS)
│ ├── [4.0k] index.html : Main html file
│ └── [3.6k] style.css : Main CSS file
├── [4.6k] utility.js : Backup JS help script
└── [2.8k] utility.py : Python script query spotify API
Prerequisites
-
Step 1
- Get the spotify SPOTIPY_CLIENT_ID and SPOTIPY_CLIENT_SECRET
- https://developer.spotify.com/dashboard/applications
-
Step 2
- Create an APP at developer page with created SPOTIPY_CLIENT_ID
- https://developer.spotify.com
-
Step 3
- Rename .creds.yml.dev to
.creds.yml
and update the Spotify credential (SPOTIPY_CLIENT_ID, SPOTIPY_CLIENT_SECRET)
- Rename .creds.yml.dev to
-
Step 4
- Execute the following commands (Method 1)then run the web APP locally
- The APP UI should be available at : http://127.0.0.1:7777/
- Backend : Python3 flask, spotipy, sklearn
- Frontend : Javascript, Ajax, HTML, CSS, Bootstrap
REF
- ref.md
- Inspired by
TODO
- Fix JS Ajax call API part
- Fix frontend layout
- Dockerize the project