Section | Description |
---|---|
🎯 Objectives and context | Project introduction and context |
🚧 Dependencies | Technical dependencies and how to install them |
🏎 Kickstart | Details on how to kickstart development on the project |
🏗 Code & architecture | Details on the application modules and technical specifications |
🔭 Possible improvements | Possible code refactors, improvements and ideas |
🚑 Troubleshooting | Recurring problems and proven solutions |
🚀 Deploy | Deployment details for various enviroments |
…
Browser | OS | Constraint |
---|---|---|
… | … | … |
- Node.js
- NPM
Canonical versions of dependencies are located in Dockerfile
and .tool-versions
.
All required environment variables are documented in .env.dev
.
When running scripts or npm
commands, it is important that these variables are present in the environment. You can use source
, nv
or any custom script to achieve this.
- Create
.env.dev.local
from empty values in.env.dev
- Install dependencies with
make dependencies
To start a FastBoot-enabled development server:
$ npm run start
To create a production-ready build:
$ npm run build
To launch a “FastBoot-enabled production-ready server” with support for canonical host, SSL and Basic
authentication, the following command can be executed after a production build has been created:
$ npm run server
Tests can be ran with the following script and do not need any environment variables as they should not create side effects (eg. they should not make any network calls, they should not read cookies, etc.)
$ make test
Test coverage is enforced using configuration metrics defined in .nycrc
. To check test coverage, this command can be ran after tests have been ran:
$ make check-code-coverage
Code instrumentation results are also available in the coverage
directory.
Several linting and formatting tools can be ran to ensure coding style consistency:
make lint-scripts
ensures TypeScript and JavaScript code follows our best practicesmake lint-styles
ensures SCSS code follows our best practicesmake lint-templates
ensures Handlebars code follows our best practicesmake check-format
ensures all code is properly formattedmake format
formats files using Prettier
To ensure the project and its code are in a good state, tests and linting tools can be ran all at once:
$ ./scripts/ci-check.sh
…
Description | Priority | Complexity | Ideas |
---|---|---|---|
… | … | … | … |
…
Each deployment is made from a Git tag. The codebase version is managed with incr
.
A Docker image running a Fastboot-ready Node.js server can be created with make build
, tested with docker-compose up application
and pushed to a registry with make push
.