Setlistify is a full-stack single page web application where users can import setlists to their Spotify account through playlists.
The frontend uses React Hooks and Redux to manage global state.
- Body Parser (Accessing post data through the body)
- Cookie Session (managing cookie-based user sesions)
- Express (Node framework that helps with routing)
- Mongoose (MongoDB support)
- Passport / Passport Spotify (Authenticiation using OAuth 2.0 API with Spotify)
- Stripe (billing management)
- Blueprint (React UI Framework for styling)
- HTTP-Proxy-Middleware (useful for connecting server to client on localhost)
- React Debounce Input - (used for searching and preventing excessive calls to the server)
- React Redux (managing global state)
- Redux Thunk (applying async logic for dispatching to Redux store)
- React Stripe Checkout (billing management)
At the root of the project, you should have a dev-sample.js to show the structure of the dev.js file
module.exports = {
spotifyClientID: "",
spotifyClientSecret: "",
mongoURI: "",
cookieKey: "",
stripePublishableKey: "",
stripeSecretKey: "",
setlistKey: "",
};
Create and fill the dev.js file with the appropriate keys and run with npm run dev
to start the server and client. To add credits: login and use the test mode credentials of: any email, card number - 4242 4242 4242 4242
, any future date, any CVC.
Refactored class based components from: https://github.com./stevenlay/setlistify_server
Plain JavaScript from: https://github.com./stevenlay/setlist.fm-Spotify-Playlist