Skip to content

Tooo/Playlist-Database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Playlist Database

A database that holds a list of songs and playlists from users. Users will choose their song genres and create a playlist of songs. They can create public playlists or share their private playlists. Other users can rate the private playlist.

Installation

  1. Download and install Python 3.9.
  2. Git clone this repo
https://github.com/Tooo/Playlist-Database.git
  1. Install required python packages.
pip install -r requirement.txt
  1. Set up a MySQL database with mySQL Installer and mySQL workbench.
  2. In config.py, fill in your MySQL connection settings.
DB_HOST = 'localhost'
DB_USER = 'user'
DB_PASSWORD = 'password'
DB_DATABASE = 'playlistdatabase'
  1. Run sqlsetup.py to set up the database and import all the songs.
python3 sqlsetup.py
  1. Run app.py.
python3 app.py
  1. Open this URL on your web browser
localhost:5000

Features

  • Save your genres and playlists in your own account.
  • Create public or private playlists with passwords.
  • Add from 300 songs from our song database.
  • Rate each song, either upvoting or downvoting

Demos

Implementation Demo

https://www.youtube.com/watch?v=SFK4WphyL1c

Application Demo

https://www.youtube.com/watch?v=O42S7y5rHyQ

Planning

ER Diagram

ER

Database Schema

Relations

Song [SongID, Name, Duration, Artist, Genre]
User [Username]
Playlist [Name, Username, Date]
Public [Name, Username]
Private [Name, Username, Password]
Rate [Username, SongID, Rating]
Contains [SongID, Name]
Share [Username, Name, SuperUsername, Rating, Comment]
UserGenres [Username, Genres]

Foreign Keys

Playlist.Username references User.Username
Public.Name references Playlist.Name
Public.Username references User.Username
Private.Name references Playlist.Name
Private.Username references User.Username
Rate.Username references User.Username
Rate.SongID references Song.SongID
Contains.SongID references Song.SongID
Contains.Name references Playlist.Name
Share.Username references User.Username
Share.SuperUsername references User.Username
Share.Name references Playlist.Name
UserGenres.Username references User.Username