Festify is a free Spotify-powered app that lets your guests choose which music should be played using their smartphones.
The state of the project is considered alpha right now. Please refer to the roadmap for details.
In order to get the app running on your machine/device please follow these steps.
The app relies on the following external services. You need to obtain API credentials for these for the app to function at all.
In order to succesfully authenticate with Spotify you need some HTTP endpoints that know your Spotify API Secret and are used for giving users long-lived access tokens.
We recommend the usage of cloud functions for this purpose. See the functions folder or the instructions in our Spotify Plugin for details.
Use this template to have all the environment variables handy for building the app and put it in a file called .env-default, it will be loaded automatically.
DOMAIN="<DOMAIN_FESTIFY_IS_HOSTED_ON>"
FIREBASE_API_KEY="<YOUR_FIREBASE_API_KEY>"
FIREBASE_AUTH_DOMAIN="<YOUR_DOMAIN>.firebaseapp.com"
FIREBASE_DB_URL="https://<YOUR_DOMAIN>.firebaseio.com"
SPOTIFY_CLIENT_ID="<YOUR_SPOTIFY_CLIENT_ID>"
SPOTIFY_TOKEN_SWAP_URL="<YOUR_TOKEN_SWAP_URL>"
SPOTIFY_TOKEN_REFRESH_URL="<YOUR_TOKEN_REFRESH_URL>"
You will also need two files from Firebase for correctly building Festify. For iOS, you will need your GoogleService-Info.plist and for Android builds you need the google-services.json file. You can obtain them from the Firebase Dev Console.
If you want to support multiple build environments, you can make Gulp download the environment-specific files .env, google-services.json and GoogleService-Info.plist. The link is given as environment variable FILE_URL_TEMPLATE. The value must be a util.format compatible format string that, when formatted with the current branch name and the file to download, makes a valid link to the given file. E.g.: https://example.com/config/%s/%s. During the build, Gulp will download these files and place them where they're needed. It will also run dotenv, so that when the .env-file is downloaded, the process environment will be updated.
Install the following tools to build and run the project:
npm i -g bowernpm i -g gulpnpm i -g cordova (only for mobile builds)npm i -g firebase-toolsnpm install
bower install
cordova prepare # if you want to build for native
cd ./functions && npm install && firebase deploy --only functions # Cloud functions for order calculation
You can also just build the guest frontend, which runs in a browser, but can't play music
gulp servegulp buildgulp build-cordova
cordova build ios
cordova run ios
gulp build-cordova
cordova build android
cordova run android
git checkout -b my-improvementThis project is licensed under the LGPLv3 - see the LICENSE file for details.
These people helped us bring Festify to life. Thank you!