Pop Market is an interface for betting on the success of songs in Spotify's Global Top 50 playlist. Players log in through Oauth via Spotify, and are able to buy or sell songs at prices determined by their place on the playlist. Spotify updates this playlist every day, so it ideally would become a daily routine. On first login, players are given 1000 points to spend. The top ten users by net worth (available points added to the value of songs in their portfolio) are shown for comparison.
This application makes use of Spotify's API for OAuth (the Authorization code flow) as well as for pulling the song lists and creating the links back to listen to the songs (using the simpler client credentials flow). It stores the encrypted user id as a cookie to allow for easy access without re-logging in.
This project is built with React / Redux on the front end (styled with Bootstrap) and Node.js / Express on the back end. The data is stored in MongoDB, accessed via Mongoose. The front end was bootstrapped with Create React App.
A version of this application is running on Fly.io here.
Run npm install
in both the front end and back end directories.
You'll also want to update the .env_dummy
file into a .env
file using the appropriate values for your development environment.
You can either run the ends separately, using npm start
in each directory, or you can build the front end into the back end using first npm run build
and then cp -r build ../backend
in the /frontend
directory. Then you'll be able to simply npm start
in the /backend
directory and be good to go!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.