Skip to content
/ dbtify Public

A database management system with Vue.js, Express.js and MySQL about a platform for music listeners and artists.

Notifications You must be signed in to change notification settings

cnsvr/dbtify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DBtify

This is a database project about DBMS

Project Description

In this project, you are supposed to implement a simple song management platform, called DBtify, with a web-based user interface. There will be listeners, songs, albums, and artists in the platform. These entities will have the following properties:

  • Listener: Username and e-mail. They are both unique which means there exists only one listener with a specific username and e-mail address.
  • Artist: Name and surname. They are not necessarily unique independently but you can assume there exists only one artist with a name and surname couple.
  • Album: ID, genre, and title. By definition, each ID is unique. Each album must contain at least one song.
  • Song: ID and title. By definition, each ID is unique. Each song must reside in only one album. Each song may be produced by one or multiple artists.

Two types of people will be using DBtify: Listeners and artists. You do not have to implement an authentication mechanism. You are allowed to provide two options for being a listener or an artist. The person can choose what he/she is and cannot perform other type of person’s operations.

Requirements

UI must support the following operations:

  • Artists shall be able to add/update/delete albums.
  • Artists shall be able to add/update/delete songs in the albums.
  • Listeners shall be able to separately view all songs, albums, and artists in DBtify. • Listeners shall be able to view all songs and albums of an artist.
  • Listeners shall be able to view all songs of an album.
  • Listeners shall be able to like songs and albums.
  • Listeners shall be able to view other listeners’ liked songs as well as his/her liked songs.
  • Listeners shall be able to view popular songs (according to number of likes) of an artist.
  • Listeners shall be able to rank all artists by the total number of likes of their songs.
  • Listeners shall be able to view songs of a specific genre.
  • Listeners shall be able to search a keyword and view the songs that contain this keyword in their titles.
  • Listeners shall be able to view the artists who produced a song together. This must be implemented as a stored procedure. Parameters of this procedure are the artist’s name and surname.
  • The system shall have three triggers:
    • When an album is deleted, all the songs in this album must also be deleted.
    • When a song is deleted, it must be removed from listeners’ likes.
    • When a listener likes an album, all the songs of this album must also be liked by that listener.

How to RUN

Firstly install all dependencies in client and server directories with

npm install

Then, initialize MySql database in server directory with

npm run create:db

Then, start the server with

npm start

Finally, start the client for UI with

npm run serve

About

A database management system with Vue.js, Express.js and MySQL about a platform for music listeners and artists.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published