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 (
>= 10.14, < 11.0
) - NPM (
>= 6.4, < 7.0
) - Elixir (
~> 1.9
) - Erlang (
~> 22.0
) - PostgreSQL (
~> 10.0
)
All required environment variables are documented in .env.dev
.
When running mix
or make
commands, it is important that these variables are present in the environment. There are several ways to achieve this. Using nv
is recommended since it works out of the box with .env.*
files.
- Create both
.env.dev.local
and.env.test.local
from empty values in.env.dev
and.env.test
- Install Mix and NPM dependencies with
make dependencies
- Generate values for mandatory secrets in
.env.dev
withmix phx.gen.secret
Then, with variables from .env.dev
and .env.dev.local
present in the environment:
- Create and migrate the database with
mix ecto.setup
- Start the Phoenix server with
iex -S mix phx.server
with environment variables from.env.dev
and.env.dev.local
A Makefile
is present at the root and expose common tasks. The list of these commands is available with make help
.
To avoid running PostgreSQL locally on your machine, a docker-compose.yml
file is included to be able start a PostgreSQL server in a Docker container with docker-compose up postgresql
.
Tests can be ran with make test
and test coverage can be calculated with make check-code-coverage
.
Several linting and formatting tools can be ran to ensure coding style consistency:
make lint-elixir
ensures Elixir code follows our guidelines and best practicesmake lint-scripts
ensures JavaScript code follows our guidelines and best practicesmake lint-styles
ensures SCSS code follows our guidelines and best practicesmake check-format
ensures all code is properly formattedmake format
formats files using Prettier andmix format
The priv/scripts/ci-check.sh
script runs a set of commands (tests, linting, etc.) to make sure the project and its code are in a good state.
…
Description | Priority | Complexity | Ideas |
---|---|---|---|
… | … | … | … |
…
Each deployment is made from a Git tag. The codebase version is managed with incr
.
A Docker image running an OTP release can be created with make build
, tested with docker-compose up application
and pushed to a registry with make push
.