Skip to content

Badila's Music Archive is a platform where you can discover (and soon be able to add) music albums or artists. It is a full-stack app built primarily with Node.js, EJS and PostgreSQL.

Notifications You must be signed in to change notification settings

cbd23/badilas-music-archive

Repository files navigation

NodeJS Express.js JavaScript Postgres EJS CSS3 NPM Railway

Badila's Music Archive

🕹 Live Demo here

Introduction

Badila's Music Archive is a platform where you can explore and discover (soon you'll also be albe to add) music albums and artists, whether you prefer the new wave or the classics.

It started with more than 50 albums, 20 artists and it continues to grow with you.

The project aims to become a dynamic hub where music enthusiasts can share what they love to listen with the community.

homepage The homepage is featuring sections like New Releases, Trending artists, and a search bar you can use to explore the archive. It highlights dynamic data fetched from the database, presented using an autoplay slider for a visually engaging experience.

The New Releases section updates when music albums with a release date closer to present day are added to the archive.

artist-page Trending artists section updates as you visit different artists' pages, like this one. This action increments the artist's popularity rating.

artists-page You can find all artists displayed on a single page and use the sorting options as you like.

albums-page Or you can go straight to the Albums page.

album-page By visiting a music album, you increase their 'times listened' score, so you can see different results when sorting the albums by 'Most played' after you navigate through the albums.


Other options to discover music albums are the Genres page: genres-page

The Labels page: labels-page

or the search bar - which returns both albums and artists based on your input, even if it is incomplete. search-result

Technologies Used

Backend: Node.js & Express.js

Frontend: EJS as templating language, to generate HTML with plain JS and & custom CSS for styling

Database: PostgreSQL for structured data management.

Deployment: Railway for hosting both the application and the database

Other tools & mentions:

  • npm for dependency management and for using different modules like node-fetch - which brings Fetch API to Node.js.
  • MediaWiki Action API for fetching and displaying the INTRO section insinde an album page and also the ABOUT section inside an artist page.

I didn't want to use an API for fetching the music albums / artists / genres or labels for a few reasons:

  • I wanted to have full control when it comes to the information that I'm displaying, whether we're talking about the artists'/albums' names or an album cover. It was a lot of work and research just to find and select the perfect picture for each of them, but in the end, if I wouldn't have been passionate about music, I wouldn't have built this project at all.
  • it was a great exercise to think what I want and need to happen inside the app, and then design the database schema that fits my needs.
  • every API has its limitations and its risks - so I decided that I'm going to work in order to be able to serve myself the info that I'll be using; speaking about risks, I didn't want to develop this project around an API that may not be live one day.

You can browse my other repos to see what I've been working on lately or you can connect with me on linkedin and say hi if you want.

⬆️Back to Top

About

Badila's Music Archive is a platform where you can discover (and soon be able to add) music albums or artists. It is a full-stack app built primarily with Node.js, EJS and PostgreSQL.

Topics

Resources

Stars

Watchers

Forks