- Full stack ES8+ with Babel
- Express server
- React client with Webpack
- Linting with ESLint
- Dev mode (watch modes for client and server, proxy to avoid CORS issues)
- Production build (single deployment artifact, React loaded via CDN)
- Heroku deployment
Pick one member of the team to own the repository and pipeline. That person should do the following:
- Create a fork of this repository for the team, and rename it something appropriate for your project.
- Click the "Deploy to Heroku" button and create a Heroku account when prompted.
- Fill in the name of the application, select Europe and then click "Deploy App". Note the MongoDB add-on; this will create and link a database for you.
- Once it has deployed successfully, click the "Manage app" button to view the application details.
- Go to the "Deploy" tab, select "Connect to GitHub" and choose your repo.
- Click "Enable automatic deploys".
Whenever you commit to master (or e.g. merge a pull request) it will get automatically deployed!
You should now make sure all of the project team are collaborators on the repository.
Various scripts are provided in the package file, but many are helpers for other scripts; here are the ones you'll commonly use:
npm run dev
: starts the frontend and backend in dev mode, with file watching and hot reloading.npm run lint
: runs ESLint against all the JavaScript in the project.npm run serve
: builds and starts the app in production mode.
When either dev
or serve
is running you can view your app at http://localhost:3000. There is a slight difference
in what's happening in the background, but you don't need to worry about that.