Marioplex node js server is a clone to spotify music streaming server, which tries to mimic the spotify server capability in handling different requests, and integrating external APIs, databases and much more features.
- ๐ Authentication and authorization
- ๐ OAuth2 facebook authentication and authorization
- ๐ Forget your password no problem you can reset it by just a click
- ๐ Mongodb as a service
- โ๏ธ Integrating with google API
- ๐ต Media straming all day and night with different qualities to choose from
- โน๏ธ Encrypted media to keep it safe from illegal downloads
- ๐ง Mailing service, get confirmation mail whenever you
- Sign up
- Froget you password
- Promoted to be premium user
- Updated your profile info
- ๐ฐ Privileges for our awesome premium users
- ๐ผ Feel bored just create your own playlist with only the best songs you like
- ๐ญ reorder your songs in your playlist however you like
- ๐ฎ Like randomness then we got your back with our great shuffle feature to feel the thrill of listening to the unknown
- ๐ The song is on fire then let it on repeat till you hate it
- ๐จ Dreamed of being an artist then be one and upload your songs and watch as users fall in love with them
- ๐ Follow your favourite users and artists and be notified whenever the upload something or create albums and playlists
- ๐ก Get notifications whenever
- some user viewed you profile (Facebook can learn something or two from us)
- artist you follow uploaded a new album/track
- some user followed you
- some user followed your playlist, and get a sense of how many people have the same musical taste as you
- ๐ Customize every detail about your profile
- ๐ Search for your beloved track/artist/user/albums/playlist by using our fuzzy search engine and get the top results and best match possible
- ๐ Deleted a playlist by mistake ? Don't worry my child you can always recover it from our deleted playlist
- ๐ฅ๏ธ Your homepage is specially customized for you and your taste with a spoon of the most populat tracks/artists in your area
- ๐ Your recently played songs are always stored so you will never miss them
- ๐ถ Tracks are ordered based on different categories to always find the best category for you
- ๐ Statistics for uploaded songs and albums. number of listeners and likes per day, month, and year. also we didn't forget to add our beloved artist statistics which include number of followers per day, month and year
- ๐ you can always delete your account when you get bored or spammed by our emails, but please don't we will miss you
npm install
export NODE_ENV=development
set NODE_ENV=development
node server.js
npm install --only=prod
export NODE_ENV=production
set NODE_ENV=production
node server.js
Be sure to add your information in .env file
CONNECTION_STRING,SPOTIFY_EMAIL,SPOTIFY_EMAIL_PASSWORD,SPOTIFY_PASSWORD_IN_APP,LIMIT,GENRE_LIMIT,FACEBOOK_APP_ID,FACEBOOK_APP_SECRET,google_drive_access_token,google_drive_refresh_token,google_drive_scope,google_drive_client_id,google_drive_project_id,google_drive_client_secret,type,project_id,private_key_id,private_key,client_email,client_id,auth_uri,token_uri,auth_provider_x509_cert_url,client_x509_cert_url,android_project_id,android_private_key_id,android_private_key,android_client_email,android_client_id,android_auth_uri,android_token_uri,android_auth_provider_x509_cert_url and android_client_x509_cert_url
npm install -g node-mongo-seeds
seed
npm install migrate-mongoose -g
migrate up
migrate up [name of migration to run]
migrate -h
use npm install or npm install -g apidoc
npx apidoc -i .\code -e node_modules -o .\Html
jest -c --coverage --collectCoverageFrom=source/*.js
jest -c --coverage
jest --runInBand ./tests --coverage