diff --git a/doc/architecture.md b/doc/architecture.md
index b8e96d395..f4e3af79a 100644
--- a/doc/architecture.md
+++ b/doc/architecture.md
@@ -3,63 +3,63 @@
## Root
`fab-manager/`
-╠═ `.docker/` In development, data of the databases are stored in this untracked folder;
-╠═ `.github/` Configuration of the GitHub repository;
-╠═ `accounting/` When some accounting exports are generated in the application, they are saved in this untracked folder;
-╠═ `app/` **The source code of the application**;
-╠═ `bin/` Ruby-on-rails binaries;
-╠═ `config/` Application and frameworks configurations are saved here. **Translations are saved here too**;
-╠═ `coverage/` Coveralls.io saves its temporary data into this untracked folder;
-╠═ `db/` Database schema and migrations (ie. the history of the construction of the database);
-╠═ `doc/` Various documentations about Fab-manager;
-╠═ `docker/` Files used to build the docker image. Also: files to set up a development environment based on docker;
-╠═ `exports/` When some exports are generated in the application, they are saved in this untracked folder;
-╠═ `imports/` When some files are imported to the application, they are saved in this untracked folder;
-╠═ `invoices/` When some invoices are generated in the application, they are saved in this untracked folder;
-╠═ `lib/` **Some more code of the application**. This code may not be loaded automatically;
-╠═ `log/` When running, the application will produce some debug outputs, they are saved in this untracked folder;
-╠═ `node_modules` Third party libraries for the front-end JS application are stored in this untracked folder by the package manager (yarn);
-╠═ `payment_schedules` When some payment schedules are generated in the application, they are saved in this untracked folder;
-╠═ `plugins/` Some code can be dropped in that untracked folder to use plugins with Fab-manager;
-╠═ `provision/` Scripts used to setup a development environment based on vagrant;
-╠═ `public` Files that will be exposed to the world by the HTTP server (nginx). This includes the compilation result of the front-end application;
-╠═ `scripts/` Some bash scripts. Scripts ran during the upgrade phrase are located here;
-╠═ `setup/` Everything needed to set up a new instance of Fab-manager, including the setup script;
-╠═ `test/` Automated tests of the application (MiniTest);
-╠═ `tmp/` Various temporary files are stored in this untracked folder;
-╠═ `vendor/` (deprecated) Previously 3rd-party assets were stored here. Now, only the fonts for the PDF generation remains here;
-╠═ `.browserslistrc` Required by babel (JS compiler) to specify target browsers for the compilation of the front-end application;
-╠═ `.coveralls.yml` Configuration of coveralls.io;
-╠═ `.dockerignore` List of files that won't be included in the docker image;
-╠═ `.env` Environment variables for development and test environments;
-╠═ `.eslitignore` List of files that won't be parsed by ESLint;
-╠═ `.eslintrc` Configuration of the JS code quality checking (ESLint);
-╠═ `.gemrc` Ruby gems configuration;
-╠═ `.gitignore` List of files that won't be tracked by the version control system (git);
-╠═ `.nvmrc` Version of node.js used in this project. This file is read by NVM in development environments;
-╠═ `.rubocop.yml` Configuration of the Ruby code quality checking (Rubocop);
-╠═ `.ruby-gemset` Used by RVM to isolate the gems of this application;
-╠═ `.ruby-version` Version of Ruby used in this project. This file is read by RVM in development environments;
-╠═ `babel.config.js` Configuration of babel (JS compiler);
-╠═ `Capfile` (deprecated) Configuration of capistrano (previous deployment system);
-╠═ `CHANGELOG.md` List of changes between releases of Fab-manager. Also contains deployment instructions for upgrading;
-╠═ `config.ru` This file is used by Rack-based servers to start the application;
-╠═ `CONTRIBUTING.md` Contribution guidelines;
-╠═ `crowdin.yml` Configuration of the translation management system (Crowdin);
-╠═ `Dockerfile` This file list instructions to build the docker image of the application;
-╠═ `env.example` Example of configuration for the environment variables, for development and test environments;
-╠═ `Gemfile` List of third-party libraries used in the Ruby-on-Rails application;
-╠═ `Gemfile.lock` Version lock of the ruby-on-rails dependencies;
-╠═ `LICENSE.md` Publication licence of Fab-manager;
-╠═ `package.json` List of third-party libraries used in the Javascript application. Also: version number of Fab-manager;
-╠═ `postcss.config.js` Configuration of PostCSS (CSS compiler);
-╠═ `Procfile` List the process ran by foreman when starting the application in development;
-╠═ `Rakefile` Configuration of Rake (Ruby commands interpreter);
-╠═ `README.md` Entrypoint for the documentation;
-╠═ `tsconfig.json` Configuration of TypeScript;
-╠═ `Vagrantfile` Configuration of Vagrant, for development environments;
-╠═ `yarn.lock` Version lock of the javascript dependencies;
-╚═ `yarn-error.log` This untracked file keeps logs of the package manager (yarn), if any error occurs;
+`╠═ .docker/` In development, data of the databases are stored in this untracked folder;
+`╠═ .github/` Configuration of the GitHub repository;
+`╠═ accounting/` When some accounting exports are generated in the application, they are saved in this untracked folder;
+`╠═ app/` **The source code of the application**;
+`╠═ bin/` Ruby-on-rails binaries;
+`╠═ config/` Application and frameworks configurations are saved here. **Translations are saved here too**;
+`╠═ coverage/` Coveralls.io saves its temporary data into this untracked folder;
+`╠═ db/` Database schema and migrations (ie. the history of the construction of the database);
+`╠═ doc/` Various documentations about Fab-manager;
+`╠═ docker/` Files used to build the docker image. Also: files to set up a development environment based on docker;
+`╠═ exports/` When some exports are generated in the application, they are saved in this untracked folder;
+`╠═ imports/` When some files are imported to the application, they are saved in this untracked folder;
+`╠═ invoices/` When some invoices are generated in the application, they are saved in this untracked folder;
+`╠═ lib/` **Some more code of the application**. This code may not be loaded automatically;
+`╠═ log/` When running, the application will produce some debug outputs, they are saved in this untracked folder;
+`╠═ node_modules` Third party libraries for the front-end JS application are stored in this untracked folder by the package manager (yarn);
+`╠═ payment_schedules` When some payment schedules are generated in the application, they are saved in this untracked folder;
+`╠═ plugins/` Some code can be dropped in that untracked folder to use plugins with Fab-manager;
+`╠═ provision/` Scripts used to setup a development environment based on vagrant;
+`╠═ public` Files that will be exposed to the world by the HTTP server (nginx). This includes the compilation result of the front-end application;
+`╠═ scripts/` Some bash scripts. Scripts ran during the upgrade phrase are located here;
+`╠═ setup/` Everything needed to set up a new instance of Fab-manager, including the setup script;
+`╠═ test/` Automated tests of the application (MiniTest);
+`╠═ tmp/` Various temporary files are stored in this untracked folder;
+`╠═ vendor/` (deprecated) Previously 3rd-party assets were stored here. Now, only the fonts for the PDF generation remains here;
+`╠═ .browserslistrc` Required by babel (JS compiler) to specify target browsers for the compilation of the front-end application;
+`╠═ .coveralls.yml` Configuration of coveralls.io;
+`╠═ .dockerignore` List of files that won't be included in the docker image;
+`╠═ .env` Environment variables for development and test environments;
+`╠═ .eslitignore` List of files that won't be parsed by ESLint;
+`╠═ .eslintrc` Configuration of the JS code quality checking (ESLint);
+`╠═ .gemrc` Ruby gems configuration;
+`╠═ .gitignore` List of files that won't be tracked by the version control system (git);
+`╠═ .nvmrc` Version of node.js used in this project. This file is read by NVM in development environments;
+`╠═ .rubocop.yml` Configuration of the Ruby code quality checking (Rubocop);
+`╠═ .ruby-gemset` Used by RVM to isolate the gems of this application;
+`╠═ .ruby-version` Version of Ruby used in this project. This file is read by RVM in development environments;
+`╠═ babel.config.js` Configuration of babel (JS compiler);
+`╠═ Capfile` (deprecated) Configuration of capistrano (previous deployment system);
+`╠═ CHANGELOG.md` List of changes between releases of Fab-manager. Also contains deployment instructions for upgrading;
+`╠═ config.ru` This file is used by Rack-based servers to start the application;
+`╠═ CONTRIBUTING.md` Contribution guidelines;
+`╠═ crowdin.yml` Configuration of the translation management system (Crowdin);
+`╠═ Dockerfile` This file list instructions to build the docker image of the application;
+`╠═ env.example` Example of configuration for the environment variables, for development and test environments;
+`╠═ Gemfile` List of third-party libraries used in the Ruby-on-Rails application;
+`╠═ Gemfile.lock` Version lock of the ruby-on-rails dependencies;
+`╠═ LICENSE.md` Publication licence of Fab-manager;
+`╠═ package.json` List of third-party libraries used in the Javascript application. Also: version number of Fab-manager;
+`╠═ postcss.config.js` Configuration of PostCSS (CSS compiler);
+`╠═ Procfile` List the process ran by foreman when starting the application in development;
+`╠═ Rakefile` Configuration of Rake (Ruby commands interpreter);
+`╠═ README.md` Entrypoint for the documentation;
+`╠═ tsconfig.json` Configuration of TypeScript;
+`╠═ Vagrantfile` Configuration of Vagrant, for development environments;
+`╠═ yarn.lock` Version lock of the javascript dependencies;
+`╚═ yarn-error.log` This untracked file keeps logs of the package manager (yarn), if any error occurs;
## Backend application
@@ -68,23 +68,23 @@ It mainly provides a REST-JSON API for the frontend application.
It also provides another REST-JSON API, open to the 3rd-party applications, and known as OpenAPI.
`fab-manager/`
-╚═╦ `app/`
- ╠═ `controllers/` Controllers (MVC);
- ╠═ `doc/` Documentation for the OpenAPI;
- ╠═ `exceptions/` Custom errors;
- ╠═ `frontend/` **Source code for the frontend application**;
- ╠═ `helpers/` System-wide libraries and utilities. Prefer using `services/` when it's possible;
- ╠═ `mailers/` Sending emails;
- ╠═ `models/` Models (MVC);
- ╠═ `pdfs/` PDF documents generation;
- ╠═ `policies/` Access policies for the API and OpenAPI endpoints;
- ╠═ `services/` Utilities arranged by data models;
- ╠═ `sweepers/` Build cached version of some data;
- ╠═ `themes/` SASS files that overrides the frontend styles. We plan to move all styles here to build multiple themes;
- ╠═ `uploaders/` Handling of the uploaded files
- ╠═ `validators/` Custom data validation (before saving);
- ╠═ `views/` Views (MVC)
- ╚═ `workers/` Asynchronous tasks run by Sidekiq
+`╚═╦ app/`
+` ╠═ controllers/` Controllers (MVC);
+` ╠═ doc/` Documentation for the OpenAPI;
+` ╠═ exceptions/` Custom errors;
+` ╠═ frontend/` **Source code for the frontend application**;
+` ╠═ helpers/` System-wide libraries and utilities. Prefer using `services/` when it's possible;
+` ╠═ mailers/` Sending emails;
+` ╠═ models/` Models (MVC);
+` ╠═ pdfs/` PDF documents generation;
+` ╠═ policies/` Access policies for the API and OpenAPI endpoints;
+` ╠═ services/` Utilities arranged by data models;
+` ╠═ sweepers/` Build cached version of some data;
+` ╠═ themes/` SASS files that overrides the frontend styles. We plan to move all styles here to build multiple themes;
+` ╠═ uploaders/` Handling of the uploaded files
+` ╠═ validators/` Custom data validation (before saving);
+` ╠═ views/` Views (MVC)
+` ╚═ workers/` Asynchronous tasks run by Sidekiq
## Frontend application
@@ -93,23 +93,23 @@ We are moving, step-by-step, to an application based on React.js + Typescript.
For now, the main application is still using Angular.js but it uses some React.js components thanks to coatue-oss/react2angular.
`fab-manager/`
-╚═╦ `app/`
- ╚═╦ `frontend/`
- ╠═ `images/` Static images used all over the frontend app;
- ╠═ `packs/` Entry points for webpack (bundler);
- ╠═╦ `src/`
- ║ ╠═╦ `javascript/`
- ║ ║ ╠═ `api/` (TS) New components to access the backend API;
- ║ ║ ╠═ `components/` (TS) New React.js components;
- ║ ║ ╠═ `controllers/` (JS) Old Angular.js controllers for the views located in `app/frontend/templates`;
- ║ ║ ╠═ `directives/` (JS) Old Angular.js directives (interface components);
- ║ ║ ╠═ `filters/` (JS) Old Angular.js filters (processors transforming data);
- ║ ║ ╠═ `lib/` (TS) New utilities + (JS) Old external libraries customized;
- ║ ║ ╠═ `models/` (TS) Typed interfaces reflecting the API data models;
- ║ ║ ╠═ `services/` (JS) Old Angular.js components to access the backend API;
- ║ ║ ╠═ `typings/` (TS) Typed modules for non-JS/TS file types;
- ║ ║ ╠═ `app.js` Entrypoint for the angular.js application;
- ║ ║ ╠═ `plugins.js.erb` Entrypoint for embedding Fab-manager's plugins in the frontend application;
- ║ ║ ╚═ `router.js` Configuration for UI-Router (mapping between routes, controllers and templates)
- ║ ╚═ `stylesheets/` SASS source for the application style
- ╚═ `templates/` Angular.js views (HTML)
+`╚═╦ app/`
+` ╚═╦ frontend/`
+` ╠═ images/` Static images used all over the frontend app;
+` ╠═ packs/` Entry points for webpack (bundler);
+` ╠═╦ src/`
+` ║ ╠═╦ javascript/`
+` ║ ║ ╠═ api/` (TS) New components to access the backend API;
+` ║ ║ ╠═ components/` (TS) New React.js components;
+` ║ ║ ╠═ controllers/` (JS) Old Angular.js controllers for the views located in `app/frontend/templates`;
+` ║ ║ ╠═ directives/` (JS) Old Angular.js directives (interface components);
+` ║ ║ ╠═ filters/` (JS) Old Angular.js filters (processors transforming data);
+` ║ ║ ╠═ lib/` (TS) New utilities + (JS) Old external libraries customized;
+` ║ ║ ╠═ models/` (TS) Typed interfaces reflecting the API data models;
+` ║ ║ ╠═ services/` (JS) Old Angular.js components to access the backend API;
+` ║ ║ ╠═ typings/` (TS) Typed modules for non-JS/TS file types;
+` ║ ║ ╠═ app.js` Entrypoint for the angular.js application;
+` ║ ║ ╠═ plugins.js.erb` Entrypoint for embedding Fab-manager's plugins in the frontend application;
+` ║ ║ ╚═ router.js` Configuration for UI-Router (mapping between routes, controllers and templates)
+` ║ ╚═ stylesheets/` SASS source for the application style
+` ╚═ templates/` Angular.js views (HTML)