ProTag leverages Genius' API to provide users data visualizations of their favorite song, performer, album, or producer.
ProTag was inspired by the need for production information of songs. The major components of song production are:
- The recording of the performer delivering her lyrics.
- The making of the beat (song's instrumental, non-lyrical/non-vocal rhythmic backing track) by the producer. A producer's beat is often identified by the producer's signature, aka tag.
Frontend: JavaScript (AJAX, JSON, React), Jinja, jQuery, Bootstrap
Backend: Python, Flask, SQLAlchemy, PostgreSQL
Libraries: D3, Chart.js, Pandas, Scikit-learn
API: Genius
On local machine, go to desired directory. Clone protag repository:
$ git clone https://github.com/rbarner14/protag.git
Create a virtual environment in the directory:
$ virtualenv env
Activate virtual environment:
$ source env/bin/activate
Install dependencies:
$ pip install -r requirements.txt
Create database:
$ createdb music
Build database:
$ python3 -i model.py
>>> db.create_all()
Seed database:
$ python3 -i seed.py
Run app:
$ python3 server.py
Navigate to localhost:5000 in browser.
Enter a song, performer, album, or producer. Select desired result.
If song selected, view song's title, album, performer, Apple Music player, and producers.
If producer selected, view producer's name, image, bio, and data visualizations. Related producers are provided, generated with a k-means
machine learning algorithm; nearest neighbors determined by like performers).
If producer has been making songs for at least 10 years, a ProTag Verified Industry Vet tag will accompany their name.
Chart.js donut graph shows songs producer made by performer.
Chart.js line graph shows songs producer made over his career tenure.
Similar views are provided for performers, except the frequency at which they work with producers is visualized.
If album is selected, view album's title, cover art, performer, D3 data visualizations (bubble and web) of songs on album by producer.
Each node represents a producer. Weights are assigned according to the number of songs that producer has made on that album.
D3 force directed graph of album's producers.
Electric charge on particles is simulated to visualize the
network of performers and producers.
Thanks for exploring!
- Enable user profile creation for favorites saving.
- Implement algorithm to suggest music to user leveraging their favorites.