From c07aa1dcea89563d5b642043f4e7ff4595f380f0 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 29 Dec 2020 13:19:29 +0100 Subject: [PATCH] add linebreaks in architectur doc --- doc/architecture.md | 190 ++++++++++++++++++++++---------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/doc/architecture.md b/doc/architecture.md index 0c763c7c7..b8e96d395 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -2,64 +2,64 @@ ## 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; +`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; ## Backend application @@ -67,23 +67,23 @@ The backend application respects the Ruby-on-Rails conventions for MVC applicati 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) +`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 ## Frontend application @@ -92,24 +92,24 @@ The frontend application is historically an Angular.js MVC application. 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 +`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)