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.
- 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.
- 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.
- 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
Checkout the Application Demo Video YouTube
I hope you like the project. Thanks for reading :)