Write and publish quests for Expedition: The RPG Card Game.
This is the companion to the Expedition App.
Install:
- redux-devtools-extension for Chrome.
- NodeJS v6.0+
Now install the repo:
git clone https://github.com/ExpeditionRPG/expedition-quest-creator
cd expedition-quest-creator
sudo npm install -g webpack && npm install
If you use windows, you may need to run the following:
npm install --global --production windows-build-tools
Config.json
contains app secrets that shouldn't be committed to the repo. We've included an example file, config-example.json
, that shows you what information is needed.
To populate all of the values, you'll need to create a Google Cloud project and connect it to a Postgres database (either run locally or remote).
TODO: from a clean installation on a new machine, what config properties are actually required to run? What setup steps are required to generate them?
npm run dev
The Quest Creator is then available at http://localhost:8080 by default. Note that dev defaults to using the beta API, running on a free Heroku instance - if you haven't dev'd in a while, it may take a minute to spin up after the first request.
When running on Windows, must be run within a Unix-like shell (such as Git Bash).
The IDE automatically loads config.json
on start - this is excluded from the repo as it holds secrets unfit for mortal eyes.
npm test
The Quest Creator uses Continuous Integration (via Travis CI) and Heroku hosting to make deployment super easy.
If tests pass, that code is automatically deployed to AWS S3 at http://betaquests.expeditiongame.com.
Once master has been thoroughly tested on dev, you can deploy to prod with ./prod.sh
- if you run into any deploy issues, make sure to read the notes in that file!
The Quest Creator uses Postgres SQL. You can test functionality and scripts against a locally-hosted version of Postgres. To access the official databases, you'll need to be a regular contributor to the codebase and receive special permission from the creators.
If you are going to access prod, especially to edit data, make sure to make a backup here first. Backups are automatically created daily, but this will allow zero-consequence rollbacks in case your query fails.
For database querying, make sure you have psql installed and can do which psql
, then run heroku pg:psql --app expedition-quest-creator-dev DATABASE
to connect.
On Mac, you may need to add PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH
to your .bash_profile
for your terminal to recognize the psql
command.
The production database is backed up daily. See the playbook on how to interact with these backups.
If you need fresher data in devel, you can restore a prod backup into dev:
heroku pg:backups:restore expedition-quest-creator:: DATABASE_URL -a expedition-quest-creator-dev