
Fantastic is a party webapp that lets guests collaborate on a music playlist that should be played in the party. More details about the application can be found in the wiki. Live demo: https://partymusicapp.herokuapp.com
Real-time Synchronization (The left is a host page, right is a guest page):
- Nodejs: Fantastic uses Node.js to build the backend, Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- Expressjs: Fantastic uses expressjs to build the API endpoints in the server
- Socket.io: Fantastic uses socket.io to sync updates between multiple users and the client and server
- MongoDB: Fantastic is built upon MongoDB Atlas Cloud Service. Set up a Clusters for your project. For user management, you can use website or Compass to connect to your database.
- Spotify, Passport-Spotify: Fantastic plays music from Spotify. Set up a Spotify Developer Application (you need a Spotify Premium account) and configure the OAuth redirect URL. Usually at least
http://localhost:3000
is needed for a dev-environment; Passport-Spotify is a library to authenticate with spotify following the OAuth2.0 strategy. - React: Fantastic constructs frontend using React, a JavaScript library for building user interfaces , which is Declarative, Component-Based and Scalable.
Fantastic loads sensitive configuration variables though .env files.
server/.env
: This file includes some configuration for Spotify and MongoDB such as spotify client ID, spotify client secret and spotify callback url and MongoDB database URI:SPOTIFY_CLIENT_ID='...' SPOTIFY_CLIENT_SECRET='...' SPOTIFY_CALLBACK_URL='...' MONGODB_URI='...'
The client/package.json
contains all necessary dependencies for building the Fantastic frontend.
npm run test
: Runs all unit tests in the files with suffix.test.js
.npm start
: Starts the server locally atlocalhost:3000
The server/package.json
contains all necessary dependencies for building the Fantastic backend.
npm run test
: Runs all unit tests in thetest
folder for the backendnpm start
: Starts the server locally atlocalhost:1000
This application was made as a group project for the Softeng750/Compsci732 course at the University of Auckland. If you would like to contribute to it:
- Fork it
- Create your feature branch:
git checkout -b my-improvement
- Make your changes and test them
- Commit & push your changes
- Submit a pull request 🚀
License is held by The University of Auckland.