This is the code for my personal website. The project uses React, Redux, and has a Node API which talks to a Redis database.
I use my site to experiment with things, share stuff I've figured out, and allow people to reach-out to me. So if you're interested in anything I do, get in touch!
Ensure redis is installed (
brew install redis).
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn install --frozen-lockfile yarn dev
yarn 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:
./scripts/docker/prepare.sh ./scripts/docker/run-tests.sh --update ./scripts/docker/clean-up.sh'
- The first will setup the docker image and container. If they already exist this will be super fast.
- The second will copy the project over, setup dependencies, build and run, and take screenshots. Failed screenshots will be copied back to your machine.
- The third simply stops the docker container.
Any changes resulting from these commands should be verified and checked in.
The following environment variables should be set up
|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|
|FLICKR_API_KEY||To pull images from the showcase album||Your Flickr API key|
|NODE_ENV||Makes the magic happen||
|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|
Hosting on Heroku
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. The server code will automatically use this connection if present instead of connecting to a local instance.
Contributions are welcome. Please fork and submit a PR if you want to add or change a feature.