Skip to content

Software Engineering Project(Spotify)-the backend team repo.

License

Notifications You must be signed in to change notification settings

MohmedMonsef/Marioplex-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽง Marioplex Spotify clone back-end

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.

Marioplex back end server 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

intro

Best of all, It is totally free and open-sourced

want to try it yourself

run for developers

first install the devDependencies and dependencies by running

npm install

then set node enviroment to be running in development , if you are on linux run

export NODE_ENV=development

if you are on windows run

set NODE_ENV=development

then run the nodeJS seerver

node server.js

run for production

first install only the dependecies by running

npm install --only=prod

then set node enviroment to be running in production , if you are on linux run

export NODE_ENV=production

if you are on windows run

set NODE_ENV=production

then run the nodeJS seerver

node server.js

environmental variables

Be sure to add your information in .env file

.env file should have

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

generate seeds

first install node-mongo-seeds globally by running

npm install -g node-mongo-seeds

then generate the seeds on the default database by running

seed

migrations

install migrate-mongoose globally

npm install migrate-mongoose -g

to run all migrations run

migrate up

to run specific migration run

migrate up [name of migration to run]

to get more info about migrate-mongoose run

migrate -h

to generate apidoc

use npm install or npm install -g apidoc

generate in folder ApiDocumentation (run in its path)

npx apidoc -i .\code -e node_modules -o .\Html

to run unit test

to run only for source file (in project path)

jest -c --coverage --collectCoverageFrom=source/*.js

to run for all files (in project path)

jest -c --coverage

can also use

jest --runInBand ./tests --coverage

About

Software Engineering Project(Spotify)-the backend team repo.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages