Music Recommendation Made Simple
This project is the semester project for CS 346 - Software Engineering at Mount St. Mary's University. The idea behind this project is to put the user at the center of their music recommendation.
Music as a service has increased in popularity in the last decade with the introduction of streaming services. However, music recommendation still highly depends on the user's behavior to generate these recommendations. However, these are often inaccurate, and not as fine-tuned as the user may need. This is where Musique comes into play.
Musique uses the user's input (including genre, dance mode, and song key), along with the user's listening habits to generate music recommendations tailored to the user's taste and style. This puts the user at the for
This project uses a combination of different technologies and programming paradigms to accomplish the goal. Below is a quick layout of the project components
Note: This project requires
Python 3.8
,pip3
, and (optionally) the latestvenv
module to run. See the Python Download Guide (https://wiki.python.org/moin/BeginnersGuide/Download) for instructions on how to install Python
-
Clone the repository
$ git clone https://github.com/collinsnji/musique.git $ cd musique
-
Create Virtual Environment and Install project dependencies
$ # create the virtual environment in ./env $ python -m venv env $ # install project dependencies $ pip install -r requirements.txt
-
Add API keys
Note: This project depends on the
Spotify
andGoogle Cloud
APIs to run
See: https://cloud.google.com/datastore/docs/quickstart on how to setup a GCP project and obtain theaccount credentials
for Datastore.
Also See: https://spotipy.readthedocs.io/en/2.19.0/ for instructions on how to obtain aSpotify client ID
and aclient secret
.
Once the Datastore account credentials are obtained along with the Spotify credentials, create a new file in the project root.env
. Copy the contents of.env_template
to this file, and update the respective fields. -
Run the project
# start the development server by running the following command $ flask run
@collinsnji is the primary Software Engineer and Project Manager for this project
PRs are always welcomed! If you found a bug, please contact the developer at collins[dot]
geek[at]
gmail[dot]
com
Here's how to setup the project