This is the code for the screen-reader-adventures website and API! The project uses React, Redux, and has a Node API which talks to a Redis database.
Ensure redis is installed (brew install redis
).
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm ci
npm run dev
npm run dev
will set all necessary environment variables needed to run the application.
A debugger can be attached to debug server-side code.
If components have changed, snapshot tests may need to be updated. Backstop js visual regression tests may also need to be updated.
To update jest snapshots:
npx jest -u
To update backstopJS snapshots:
docker build -t georgegillams-test -f Dockerfile.backstopjstest .
docker run georgegillams-test
docker cp DOCKER_CONTAINER_ID:/usr/src/tmp/backstop_data ./
Any changes resulting from these commands should be verified and checked in.
The following environment variables should be set up
Env var | Reason | Value |
---|---|---|
GSUITE_APP_PASSWORD | To send emails from your Gmail account | The password generated to access yout G-Suite account |
GSUITE_EMAIL | To send emails from your Gmail account | Your G-Suite email address |
NODE_ENV | Makes the magic happen | production |
REDIS_URL | To access the redis database. | If no URL is provided, the server will connect to a local redis instance. |
SECRET_API_KEY | Used to make admin API requests | Anything secret and impossible to guess |
SESSION_SECRET | Used to sign cookies | Anything secret and impossible to guess |
STRIPE_PUBLIC_API_KEY | Used to enable card payments | Comes from the Stripe dashboard |
STRIPE_SECRET_API_KEY | Used to enable card payments | Comes from the Stripe dashboard |
To host this on Heroku, you will need to add the Heroku-redis Add-on. Doing so will create a the REDIS_URL environment variable required to connect to the DB.
Contributions are welcome. Please fork and submit a PR if you want to add or change a feature.