A dummy project for testing out product development techniques and procedures.
- Make sure you have Node.js and Postgres (at least ver 13) installed.
- Clone down the repo
npm run start
- The Project should be running on
localhost:8000
- You can create a
./config/local.config.js
file to override and change settings within the project. (Don't worry, this won't be commited to the repo) - You can either set up your own Okta instance, or grab the configs from another team member and use a shared developer instance
Canary is set up to support rapid development.
- Starting the project with
npm run dev
sets it in development mode - In development mode, it uses file watchers to automatically restart and re-bundle any code that changes
- It uses Live Reload to automatically update the browser with changes
- Freely make changes to your own
./config/local.config.js
without affecting the rest of the project
You can run the test cases by running npm run tests
. If any tests fail it'll output an exit code of 1
.
The test cases cover unit tests for business logic, API tests using supertest
, and database tests using isolated tables.
- Server: Node.js & Express
- Database: Postgres
- Accounts/Authentication: Okta
- Frontend Framework: React-like component-based
- API Spec: Swagger
- Analytics: Mixpanel
- Payments: Stripe
Currently the Canary Project has two deployment environments: development
and production
- Set up for auto-deploys from new pushes and PRs to
master
branch on Github - Configs should roughly mirror local development
- Used to validate deployed feature changes
- Can whitelist valid IP ranges for internal access only
- Deployed from a deployed
development
slug
Heroku has extensive documentation on how they comply with GDPR
We can give any team oversight access to both the Github repo and the Heroku pipelines.
npm run start
: Starts a project servernpm run dev
: Starts a development servernpm run tests
: runs the test casesnpm run dummy_data
: Preloads the database with some random fake datanpm run logs
: Outputs the log stream from the production Heroku instancenpm run heroku
: Opens a browser to the Heroku pipeline