SoundVitrine is a web-app that hosts your local music library metadata. It's kinda like a reverse Spotify !
- Using SoundBuddy - its app counterpart - you can securely publish your 10k+ tunes library online in a matter of millisecondsā”
- Thanks to HTTP's SSE enabled by Mercure, watch in real-time what the vitrine's curator is listening to, live from iTunes š¤Æ
This personal project is quite old, and started as an idea back in 2018.
As a music enthusiast, I always had tons and tons of new music that I downloaded regularly on my computer, and liked having them tightly ordered, with album covers.
Back then, music pure player like Deezer or Spotify did not have a complete enough library (especially considering my music tastes !) to justify switching to those, so I kept my iTunes library growing.
As I always wanted to tell about my discoveries to my friends when I was outside but frequently forgot about band names and titles, I thought about building what became SoundVitrine !
- Slick, responsive design
- Internationalization (French and English)
- Band Searching, upload history and statistics features
- Basic, password & username account feature
- Genre / Artists / Album unified navigation
- Automatic fetching of album covers, thanks to MusicBrainz Picard
- Responsively display account owner's currently listened-to music (including track-jumping, play/resume events !)
- Short links to Youtube on listened tunes / searched albums to listen to the music yourself
Note
The legacy technologies / techniques that are used on this Proof-of-Concept project are not par with industry standards - refactorization efforts are welcome #14 !
- Plain old HTML5 + CSS3 animations (w/ animate.css & FontAwesome)
- PHP, leveraging Compose for external JWT implementation & code-smell detection
- Vanilla Javascript, alongside
- Highcharts for graphs
- Mixitup for DOM animations
- Hammer.js for gesture handling
- SortTable, for table sorting obviously
- Moment.js for time
- PHPFranken w/ Mercure for a self-contained Docker app with SEE events handling
- MusicBrainz API (https://musicbrainz.org/doc/MusicBrainz_API)
Tip
- Using Visual Studio Code is strongly advised, and we assume you are using it in this documentation. Some extensions will also be automatically recommended to you to ease debuging and coding.
- We also assume you are familiar with
gitand have cloned the repo on your machine. - Being familiar with
dockeranddocker-compose.ymlfile format is also highly recommanded if you wish to deploy the app yourself.
- In the
Execute and DebugVSCode's left panel, please run1) Run - Docker Composeconfiguration.- It will require a docker image build, so it might take a few seconds the first time you run it; please wait !
- In almost all cases,
1a) Bind XDebugconfiguration should not be ran independently since it will be automatically launched for breakpoints to work.
- Once you notice
server runningin1) Run - Docker Compose's terminal log, you can run2) Open SoundVitrine locallyto launch the app.
Since the app is self-contained, hosting is quite simple. Check https://github.com/Amphaal/SoundVitrine/tree/main/.dev/docker-compose.prod-example.yml for a non-debug configuration example. We strongly suggest you to change environments variables defaults by populating an .env files with required parameters.








