Skip to content

PostgreSQL database and a corresponding Flask web interface to store music library information dynamically with multiple linked versions of songs

Notifications You must be signed in to change notification settings

lankaraniamir/music-library-db-web-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Music Library Database & Web Interface

Description

This database/website pair can be used to store and access data within any personal or professional music library in a way that is flexible yet intricate. In order to run, you must store your own dataset using the provided SQL schema, and then alter the commented out database information in web interface to use the relevant information for your system and database. Example queries show how to extract various data from the schema.

alt text

Database

I created this database in PostgreSQL to store my own music in a way that made it easy: to extract audio data for my research studies, to find multiple versions of a song for my DJ sets & music production, to listen to my music in traditional forms such as an album, and to allow my library to be shared by my roommates as different users. It contains each entity and relationship that could be found in a typical music streaming service or music archive, along with some more that satisfy the criteria above. The database is particuarly novel in that there is a distinction between a song and a song file allowing there to be multiple versions of a song that are linked together allowing users to listen to albums as normal while being able to extract alternative versions of the song --- such as instrumentals, acapellas, remixes, and samples --- without hassle.

Web Interface

Each entity is accessed through unique header options with some headers grouping multiple entities (eg songs, lyrics, & files). Relationships are usually implemented using dynamic links which bring users from the web page for one entity instance to the web page associated with the entity instance of the other entity in the relationship. This constant linkage allows for easy movement between all information as needed (eg can easily go to info of each song on album, each genre of the album, and each user who saved the album from the album page). It also has a dynamic approach to genres where all songs and releases within a genre are found by first finding all subgenres using a recursive selection of all genres that can be traced upwards to the current genre, and then finding any song or release that exists within any of those genres. Website is made using Flask. Lastly, the web interaface also allows you to create an account and only allows accesss to account holders.

About

PostgreSQL database and a corresponding Flask web interface to store music library information dynamically with multiple linked versions of songs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published