PlayListed is a full stack project that uses Express, MySQL, Sequelize and Handlebars to create a recommended playlist of songs based on user preferences such as mood, energy, and genre.
Problem it solves:
Identify and manage a personalized playlist of song recommendations according to mood, energy level, and genre.
Perform searches against a song library that matches attributes to user preferences.
MySQL is used as the backend to manage users, songs, and playlists leveraging the Sequelize ORM and implemented with the MVC design pattern. Handlebars and static pages are used for UI/UX on CSS3 and HTML5 in combination with Bootstrap. An api is available to perform CRUD operations against the users, songs and playlists from the front-end via AJAX requests. Passport is used for user authentication.
Node, NPM and a command line tool such as GitBash.
To get a development environment up and running, clone the repository locally.
From the command line, execute the below to setup the project:
$ npm install path --save $ npm install sequelize --save $ npm install mysql2 --save $ npm install express --save $ npm install express-handlebars --save $ npm install dotenv --save $ npm install body-parser --save $ npm install moment --save $ npm install bcrypt --save $ npm install express-validator --save $ npm install cookie-parser --save $ npm install passport --save $ npm install connect-flash --save $ npm install nodemailer --save $ npm install request --save
Create an .env file at the root of the project and populate with connection info.
# Local DB DB_DEV_USERNAME="ENTER_DB_USER_NAME_HERE" DB_DEV_PASSWORD="ENTER_PASSWORD_HERE" DB_DEV_DATABASE="ENTER_DB_NAME_HERE" DB_DEV_HOST="127.0.0.1" DB_DEV_PORT=3306
Unit testing was done against all routes from end-to-end and functionally tested by team mates.
The project is deployed to Heroku pages at https://rocky-brook-81163.herokuapp.com/
Express, MySql, Sequelize, JQuery, HTML5, CSS3, Bootstrap, Font Awesome, Passport
This is version 0.5
- Jenni Coleman – Design, Express server, MVC, Routes, Sequelize, AJAX calls (songs, users, playlists), Bcrypt and Handlebars
This project is licensed under the MIT License – see the LICENSE.md file for details