beeker1121 / songhunt

Website for finding the best music daily, curated by the online community.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Song Hunt

Song Hunt is a website for finding the best music daily, curated by the online community.

Check it out here: http://songhunt.io/

Song Hunt Preview

Project Details

  • Member system
  • Users must login to post and upvote songs
  • Song plays in embedded streamer in drop down info for song
  • Commenting system
  • Allow SoundCloud tracks
  • Allow YouTube tracks
  • Login system via Facebook, SoundCloud, and Twitter (maybe Google?)

Installation

The main application, which consists of the backend API and frontend application, is located in the cmd/app folder.

Download or clone this repository to your local machine or VM:

git clone https://github.com/beeker1121/songhunt.git

A MySQL database is required for this application to work.

The database schema has been exported to cmd/app/database.sql. This SQL file will create a new database called songhunt, but you can create it first then import into it:

mysql -u [your_user] -p songhunt < cmd/app/database.sql

Browse to the cmd/app directory and install the NPM packages:

npm install

This will install both development and production dependencies.

Next, set the required environment variables:

export DB_HOST="localhost"
export DB_USER="your_username"
export DB_PASS="your_password"
export SCHEME="http"
export HOST="yoursite.com"
export PORT=80
export JWT_SECRET="random_jwt_secret_string"
export SOUNDCLOUD_CLIENT_ID="your_soundcloud_client_id"

Run the build:dev NPM script:

npm run build:dev

These settings are used in the configuration files for both the backend and frontend applications.

Now we can start the application in development mode:

npm run start:dev

Browsing to your set host with the set port should show the homepage.

To start in production mode, simply run build:prod and start:prod NPM scripts instead of the dev versions:

npm run build:prod
npm run start:prod

Technology

Below is the list of technology used for this project:

  • Docker
  • Node.js
  • JavaScript (ES2015/ES6)
  • Express
  • React
  • React Router v4
  • Redux
  • Webpack
  • MySQL
  • JWT Authentication

About

Website for finding the best music daily, curated by the online community.

License:MIT License


Languages

Language:JavaScript 94.6%Language:CSS 5.3%Language:HTML 0.2%