Spotify-App-MEEN

The Spotify Clone App is a Song Based Web App designed using Full Stack Web Development through the Technology of MEEN Stack (MongoDB, ExpressJS, EJS, NodeJS), RedisDB, GulpJS, NodeMailer, and Passport Auths. This website is completely Responsive across all the Devices.

Stars
4
Committers
2

Introduction

The Spotify Clone App is a Song Based Web App designed using Full Stack Web Development through the Technology of MEN Stack (MongoDB, ExpressJS, NodeJS), RedisDB, GulpJS, NodeMailer, and Passport Auths. This website is completely Responsive across all the Devices.

  • Users are able to create playlists with their choice of songs.
  • Users can update their profiles.
  • Users can visit playlists, artists, albums, libraries, & many more pages with songs.
  • Users can search for songs, artists, albums, playlists, and other users.
  • Users can follow other users.
  • Users can like & play the songs across the app.
  • Users can share their listening activity across other social media.
  • Users receive mail notifications on new account creation & for Password Reset Link.
  • Users can log in through manual or social login.
  • JWT functionality with access & refresh tokens is also present with cookies in the codebase, but is not used. It's for the demonstration purpose.

Note

  • master branch contains the code for the Heroku/Other Deployments.
  • Development branch contains the code for the localhost development version.
  • AWS_Deployment branch contains the code for the AWS Deployment.

Getting Started With The Project

  • Fork the Project in your Repository.
  • Clone the Forked Repository in your Local System.
  • Install & Configure - NodeJS, MongoDB, Robo3T, POSTMAN, WSL & Redis Server
  • Create '.env' file & Set the Environment Variables in it, as per the 'ENV_FORMAT.json' file.
  • Run 'npm install' in GitBash Terminal
  • Go to 'package.json' & inside the 'SCRIPTS', find "start":"...."
    Change it to - "start": "nodemon index.js",
  • If you want to run the project in development mode locally then go to '.env' file & set,
    ENVIRONMENT=development
    DEPLOYMENT=local
  • If you want to run the project in production mode locally then go to '.env' file & set,
    ENVIRONMENT=production
    DEPLOYMENT=local
  • Run 'redis-server' in WSL Terminal
  • Run 'npm start' in GitBash Terminal
  • Enjoy :)

For any issues related to the project, raise an ISSUE in the respective Repository.

Tools Used

  • Library:
    • bcrypt
    • connect-flash
    • connect-mongo
    • cookie-parser
    • cors
    • crypto
    • del
    • dotenv
    • ejs
    • express
    • express-ejs-layouts
    • express-session
    • express-validator
    • gulp
    • gulp-cssnano
    • gulp-imagemin
    • gulp-rev
    • gulp-sass
    • gulp-uglify-es
    • ioredis
    • jsonwebtoken
    • kue
    • lodash
    • mongoose
    • morgan
    • multer
    • node-sass-middleware
    • nodemailer
    • nodemon
    • noty
    • passport
    • passport-spotify
    • passport-jwt
    • passport-google-oauth
    • passport-local
    • rotating-file-stream
    • validator
  • Framework: ExpressJS
  • Database: MongoDB, RedisDB
  • Version Control System: Git
  • VCS Hosting: GitHub
  • Programming / Scripting: JavaScript
  • Front-End: HTML, CSS, EJS
  • Runtime Environment: NodeJS
  • Integrated Development Environment: VSCode

Links

Checkout the Application Demo Video YouTube

Screens

Follow Me:

Dev Community

Twitter

LinkedIn

YouTube

I hope you like the project. Thanks for reading :)