From 4c24fef574f47881ab27add731946d8666e70e41 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20PAILHAREY?= <rpailharey@grandlyon.com>
Date: Tue, 26 Oct 2021 14:16:59 +0000
Subject: [PATCH] Feat/doc ecolyo agent

---
 docs/ecolyo/application/gitflow.md            |   2 +-
 .../ecolyo/ecolyo-agent/development/backup.md |  25 +++
 .../ecolyo/ecolyo-agent/development/deploy.md | 177 ++++++++++++++++++
 .../ecolyo-agent/development/handle_assets.md |  42 +++++
 .../functionalities/authentification.md       |  10 +
 .../ecolyo-agent/functionalities/general.md   |  13 ++
 .../ecolyo-agent/functionalities/routes.md    |   4 +
 .../launch_local_application.md               |  82 ++++++++
 .../ecolyo-agent/getting_started/libraries.md |  57 ++++++
 .../getting_started/setup_your_environment.md | 100 ++++++++++
 docs/ecolyo/ecolyo-agent/introduction.md      |  12 ++
 .../launch_local_application.md               |   4 +-
 .../getting_started/setup_your_environment.md |   4 +-
 .../project_architecture/environments.md      |   2 +-
 docs/img/ecolyo-agent/newsletter-template.png | Bin 0 -> 54645 bytes
 .../launch_local_application.md               |   4 +-
 .../getting_started/setup_your_environment.md |   4 +-
 .../launch_local_application.md               |   4 +-
 mkdocs.yml                                    |  14 ++
 19 files changed, 548 insertions(+), 12 deletions(-)
 create mode 100644 docs/ecolyo/ecolyo-agent/development/backup.md
 create mode 100644 docs/ecolyo/ecolyo-agent/development/deploy.md
 create mode 100644 docs/ecolyo/ecolyo-agent/development/handle_assets.md
 create mode 100644 docs/ecolyo/ecolyo-agent/functionalities/authentification.md
 create mode 100644 docs/ecolyo/ecolyo-agent/functionalities/general.md
 create mode 100644 docs/ecolyo/ecolyo-agent/functionalities/routes.md
 create mode 100644 docs/ecolyo/ecolyo-agent/getting_started/launch_local_application.md
 create mode 100644 docs/ecolyo/ecolyo-agent/getting_started/libraries.md
 create mode 100644 docs/ecolyo/ecolyo-agent/getting_started/setup_your_environment.md
 create mode 100644 docs/ecolyo/ecolyo-agent/introduction.md
 create mode 100644 docs/img/ecolyo-agent/newsletter-template.png

diff --git a/docs/ecolyo/application/gitflow.md b/docs/ecolyo/application/gitflow.md
index 5ec53a6..c21cbba 100644
--- a/docs/ecolyo/application/gitflow.md
+++ b/docs/ecolyo/application/gitflow.md
@@ -1,6 +1,6 @@
 ## Initialize
 
-- Create a new projet in gitlab and take note of its url
+- Create a new project in gitlab and take note of its url
 
 ### Protecting Master Branch
 
diff --git a/docs/ecolyo/ecolyo-agent/development/backup.md b/docs/ecolyo/ecolyo-agent/development/backup.md
new file mode 100644
index 0000000..1752221
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/development/backup.md
@@ -0,0 +1,25 @@
+## Principles
+
+In the docker-compose.yml, there is a service called "database-backup" whose only purpose is to run automatic backups of the database.
+
+It is running a crontab that execute the backup.sh script every day at midnight.
+
+The dump of the database are stored in folders name like this : "ecolyo-agent-YEAR-MONTH-DAY-HOUR-MINUTE-SECOND". Only the 14 last days are stored.
+
+The location of the backup folder on the server is specified in the volumes of the "database-backup" service, in the docker-compose file. 
+
+## Backup manually
+
+To backup manually, run this command : 
+
+```
+docker exec -it backoffice-client_database-backup_1 sh /etc/cron.d/restore.sh ecolyo-agent-YEAR-MONTH-DAY-HOUR-MINUTE-SECOND
+```
+
+## Restore manually
+
+To restore a specific dump, run this command replacing YEAR etc.. by the date of the wanted backup :
+
+```
+docker exec -it backoffice-client_database-backup_1 sh /etc/cron.d/restore.sh ecolyo-agent-YEAR-MONTH-DAY-HOUR-MINUTE-SECOND
+```
\ No newline at end of file
diff --git a/docs/ecolyo/ecolyo-agent/development/deploy.md b/docs/ecolyo/ecolyo-agent/development/deploy.md
new file mode 100644
index 0000000..3c88e3a
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/development/deploy.md
@@ -0,0 +1,177 @@
+This section will allow you to properly deploy Ecolyo-Agent in a production environment
+
+## Deploy Ecolyo-Agent application
+
+To deploy ecolyo-agent application in a production environment, you need to create docker-compose.yml, site.conf and .env files
+
+### docker-compose.yml
+
+```
+version: '3.7'
+services:
+  nginx:
+    image: registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client:dev
+    restart: unless-stopped
+    ports:
+      - 8080:8080
+    depends_on:
+      - backend
+    networks:
+      backoffice:
+    volumes:
+      - ./site.conf:/etc/nginx/conf.d/default.conf
+      - ./image-lib:/usr/share/nginx/html/lib
+
+  database-agent:
+    image: mysql:5
+    ports:
+      - 3306:3306
+    networks:
+      backoffice:
+    restart: unless-stopped
+    environment:
+      MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
+      MYSQL_DATABASE: ${DATABASE_NAME}
+    healthcheck:
+      test: mysqladmin ping -h 127.0.0.1 -u root --password=$$MYSQL_ROOT_PASSWORD
+      interval: 5s
+      timeout: 10s
+      retries: 60
+
+  backend:
+    image: registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server:dev
+    networks:
+      backoffice:
+    depends_on:
+      database-agent:
+        condition: service_healthy
+    restart: unless-stopped
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+      - ./configs:/app/configs
+      - ./letsencrypt_cache:/app/letsencrypt_cache
+      - ./data:/app/data
+      - ./image-lib/${IMAGE_FOLDER}:/app/${IMAGE_FOLDER}
+    ports:
+      - ${HTTPS_PORT}:${HTTPS_PORT}
+      - 8190:8090
+    environment:
+      - HOSTNAME=${HOSTNAME}
+      - HTTPS_PORT=${HTTPS_PORT}
+      - ADMIN_ROLE=${ADMIN_ROLE}
+      - REDIRECT_URL=${REDIRECT_URL}
+      - CLIENT_ID=${CLIENT_ID}
+      - CLIENT_SECRET=${CLIENT_SECRET}
+      - AUTH_URL=${AUTH_URL}
+      - IMAGE_FOLDER=${IMAGE_FOLDER}
+      - MOCK_OAUTH2=${MOCK_OAUTH2}
+      - TOKEN_URL=${TOKEN_URL}
+      - USERINFO_URL=${USERINFO_URL}
+      - DEBUG_MODE=${DEBUG_MODE}
+      - DATABASE_USER=${DATABASE_USER}
+      - DATABASE_NAME=${DATABASE_NAME}
+      - DATABASE_PASSWORD=${DATABASE_PASSWORD}
+      - DATABASE_HOST=database-agent
+
+networks:
+  backoffice:
+```
+
+### site.conf
+
+```
+server {
+    listen 8080;
+    server_name ecolyo-agent-rec.grandlyon.com;
+    location / { 
+        root /usr/share/nginx/html;
+        index index.html index.htm;
+        try_files $uri $uri/ /index.html =404;
+    }
+    location /api {
+        proxy_pass https://backend:1443/api;
+    }
+    location /OAuth2Login {
+        proxy_pass https://backend:1443/OAuth2Login;
+    }
+    location /OAuth2Callback {
+        proxy_pass https://backend:1443/OAuth2Callback;
+    }
+    location /Logout {
+        proxy_pass https://backend:1443/Logout;
+    }
+    location /swagger {
+        proxy_pass https://backend:1443/swagger;
+    }
+    location /imageNames {
+        proxy_pass https://backend:1443/api/admin/imageNames;
+    }
+    # cozy-doctypes workaround
+    location /email {
+        #  if ($arg_serviceName != overview) { return 404; } if ($arg_param !~ "^\d+$") { return 404; } if ($arg_serviceName ="image") { rewrite ^ /usr/share/nginx/html/lib/$arg_param? permanent;
+        #}
+        proxy_pass https://backend:1443/api/common/monthlyReport/$arg_param;
+        # rewrite ^ /usr/share/nginx/html/lib/$arg_param? permanent;
+    }
+    location ~ ^/assets/(.+\.(?:gif|jpe?g|svg|png))$ {
+        alias /usr/share/nginx/html/lib/$1;
+        gzip_static on;
+        expires max;
+        add_header Cache-Control public;
+    }
+}
+```
+
+### .env
+
+In this file, add the variables as described in the env-template file in the git repo
+
+To use OAuth2 login ask your client ID and client secret
+
+Here is the config to run the app
+
+```
+NODE_TLS_REJECT_UNAUTHORIZED = '0'
+HTTPS=true
+SSL_CRT_FILE=cert.pem
+SSL_KEY_FILE=key.pem
+# Common settings
+HOSTNAME=your_url.com
+ADMIN_ROLE=******
+DEBUG_MODE=false
+MOCK_OAUTH2=false
+HTTPS_PORT=1443
+IMAGE_FOLDER=ecogesture
+
+# Needed to user OAuth2 authentication :
+REDIRECT_URL=https://${HOSTNAME}:443/OAuth2Callback
+CLIENT_ID=**get one from your IDP**
+CLIENT_SECRET=**get one from your IDP**
+AUTH_URL=**get it from your IDP**
+TOKEN_URL=**get it from your IDP**
+USERINFO_URL=**get it from your IDP**
+LOGOUT_URL=/
+
+# Access to the database
+DATABASE_USER=******
+DATABASE_PASSWORD=*******
+DATABASE_NAME=backoffice
+```
+
+## Start the application
+
+Then start the app by launching the command :
+
+```
+docker-compose up -d
+```
+
+To check if the application starts successfully, launch the command
+```
+docker logs backoffice-client_backend_1
+```
+
+You should obtain the following messages:
+
+> --- Server is starting ---  
+> Token signing key set
diff --git a/docs/ecolyo/ecolyo-agent/development/handle_assets.md b/docs/ecolyo/ecolyo-agent/development/handle_assets.md
new file mode 100644
index 0000000..f5d8756
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/development/handle_assets.md
@@ -0,0 +1,42 @@
+This section will allow you to import the assets used in the newletters from Ecolyo
+
+## Export assets
+
+In Ecolyo project, open a terminal in "/src/assets" folder and run 
+```
+docker build . -t registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client:assets
+docker push registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client:assets
+```
+This will create a small docker image containing all the images needed, converted in png format, and push it to the container registry in the backoffice-client repository.
+
+## Import assets
+
+In the rec or prod server, create a import_assets.sh file and add execution permission. 
+
+Copy the following content, replacing USERNAME and PASSWORD by the project access token
+```
+#!/bin/bash
+
+#Login and pull assets container image
+docker login -u USERNAME -p PASSWORD https://registry.forge.grandlyon.com/v2/web-et-numerique/llle_project/backoffice-client
+docker pull registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client:assets
+
+# Instanciate container
+docker rm assets
+docker run --name assets -it registry.forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client:assets sh
+
+# Copy files
+sudo rm -rf ../image-lib
+sudo docker cp assets:/image-lib ../image-lib
+
+# Give permission to the container user
+sudo chown -R 1000:1000 ../image-lib
+```
+
+To import assets for the ecogesture images, run
+```
+sudo sh scripts/import_assets.sh
+```
+
+Check that a "image-lib" folder has been created, that it contains a "ecogesture" folder and some images and that the owner of the "image-lib" folder is the user id 1000.
+
diff --git a/docs/ecolyo/ecolyo-agent/functionalities/authentification.md b/docs/ecolyo/ecolyo-agent/functionalities/authentification.md
new file mode 100644
index 0000000..7d01d27
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/functionalities/authentification.md
@@ -0,0 +1,10 @@
+# Authentification
+
+This backoffice is meant to be used only by the admins of Ecolyo app and so they need to login to edit the newsletters.
+
+The protocol used to login is OAuth2 with the Authorization Code grant type ([more info](https://auth0.com/docs/authorization/flows/authorization-code-flow))
+
+Once an admin is connected, he must call the /whoAmI route to access his XSRF-TOKEN and add it in a header named "XSRF-TOKEN" for all requests going to the backend.
+
+The only routes that can be accessed without authentification are /monthlyReport/year/month and /monthlyReport with GET.
+They will return all the different sections of a specific or the current newsletter in a single JSON.
\ No newline at end of file
diff --git a/docs/ecolyo/ecolyo-agent/functionalities/general.md b/docs/ecolyo/ecolyo-agent/functionalities/general.md
new file mode 100644
index 0000000..0241c92
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/functionalities/general.md
@@ -0,0 +1,13 @@
+# Introduction
+
+The goal is to send newsletters following this design :
+
+![Architecture principles](/img/ecolyo-agent/newsletter-template.png)
+
+There are 3 different sections :
+
+- monthlyInfo : contains a image URL and some global information
+
+- monthlyNews : contains an editable title and some information about the novelties
+
+- poll : contains a question and a link to answer a survey
\ No newline at end of file
diff --git a/docs/ecolyo/ecolyo-agent/functionalities/routes.md b/docs/ecolyo/ecolyo-agent/functionalities/routes.md
new file mode 100644
index 0000000..0de56c7
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/functionalities/routes.md
@@ -0,0 +1,4 @@
+# Routes
+
+The different routes exposed by the backend are described by Swagger documentation.
+Once the appis deployed, the documentation is accessible at https://HOSTNAME/swagger/index.html
\ No newline at end of file
diff --git a/docs/ecolyo/ecolyo-agent/getting_started/launch_local_application.md b/docs/ecolyo/ecolyo-agent/getting_started/launch_local_application.md
new file mode 100644
index 0000000..6de9676
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/getting_started/launch_local_application.md
@@ -0,0 +1,82 @@
+This section will allow you to launch a proper local environment for Ecolyo-Agent
+
+## Initialisation of the project
+
+### Clone the project repository
+
+Use following commands in your favorite terminal to clone the project:
+
+```
+git clone https://forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client
+git clone https://forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server
+```
+
+## Installation of the project
+
+### Installation of node modules
+
+To install required node module, open a terminal on the root folder of the backoffice-client project and type the following command:
+
+```
+yarn install
+```
+
+## Local usage
+
+Before launching the application, ensure you've properly filled the .env file according to the template. If needed please refer to a team member.
+
+In order to launch the projet in local with the backend working launch the following command
+
+```bash
+yarn local-up
+```
+
+This command will launch the app from the _docker-compose.local.yml_ file, which will launch 3 docker images and start the react app with _yarn start_
+
+- The backend Go app, from the image located on its GitLab repository
+- The mongo Database, from the DockerHub image
+- The Ngnix server with a local configuration located in nginx/site.conf
+
+To stop it properly use
+
+```bash
+yarn local-down
+```
+
+This app runs in https, such as the backend, to access it go on https://localhost/
+Also make sure you have HTTPS env variable set to true.
+Do not use the app with the port 3000, you won't be able to login.
+
+> :warning: **If you are launching the project from a Linux OS** : Make sure to uncomment the commented lines in the docker-compose.local file. Otherwise, you you won't be able to access your machine's localhost from the docker container.
+
+## Backend and Database
+
+In order to get Backend documentation, please refer directly to the [backend project](https://forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server)
+
+## Nginx
+
+The nginx server redirects https requests from frontend to the backend on port 1443.
+
+It has two configuration files :
+
+- nginx/site.conf, used for local development
+- nginx/site.prod.conf, used for production
+
+The nginx server needs local ssl certificates in order to run an interact with backend, these certificates are present in the project.
+
+
+## Check success
+
+To check if the application starts successfully, launch the command 
+```bash
+docker logs backoffice-client_backend_1
+```
+
+You should obtain the following messages:
+
+> --- Server is starting ---
+> Token signing key set  
+> Mock OAuth2 server Listening on: http://localhost:8090  
+
+Once the application is started, you can access it here: https://localhost
+
diff --git a/docs/ecolyo/ecolyo-agent/getting_started/libraries.md b/docs/ecolyo/ecolyo-agent/getting_started/libraries.md
new file mode 100644
index 0000000..83db280
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/getting_started/libraries.md
@@ -0,0 +1,57 @@
+# Libraries
+
+For this project, we use the libraries below:
+
+## React
+
+Library to create user interfaces.
+Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.
+
+Build encapsulated components that manage their own state, then compose them to make complex UIs.
+
+Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep state out of the DOM
+
+## Axios
+
+HTTP client library
+
+It allows to send HTTP request and manage the responses.
+
+## Lodash
+
+javascript utility library
+
+Lodash'modular method are great for:
+
+- Iterating arrays, objects, & strings
+- Manipulating & testing values
+- Creating composite functions
+
+## Jest
+
+Testing library
+
+It allows to evaluate functionnalities of an app to ensure that the product is defect-free in order to produce the quality product.
+
+## Sass
+
+CSS preprocessor
+
+It allows us to easily manage large CSS files and split across different files.
+It allows us to create variables, nested rules, mixins, functions, and do mathematical calculations.
+
+## Gorilla/Mux
+
+Package for Go that implements a request router and dispatcher for matching incoming requests to their respective handler.
+
+It allows us to easily create and manage routes/APIs 
+
+## Swag
+
+Package fo Go that converts annotations to Swagger Documentation 2.0.
+
+## Gorm
+
+ORM for Go
+
+It allows us to easily communicate between the backend and a relational database
diff --git a/docs/ecolyo/ecolyo-agent/getting_started/setup_your_environment.md b/docs/ecolyo/ecolyo-agent/getting_started/setup_your_environment.md
new file mode 100644
index 0000000..0443d3b
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/getting_started/setup_your_environment.md
@@ -0,0 +1,100 @@
+This section will allow you to install a proper local environment step by step for Ecolyo-Agent using VSCode IDE.
+
+## VSCode
+
+### Install VSCode
+
+Installation for VSCode can be found here: [Installation of VSCode](https://code.visualstudio.com/).
+
+### Extensions
+
+Installation of Extention is explained here: [Installation of Extensions](https://code.visualstudio.com/docs/editor/extension-gallery).
+
+Here are the list of important extensions to install:
+
+- Prettier - Code formatter
+- ES7 React/Redux/GraphQL/React-Native snippets
+- GitLens - Git supercharged
+- Markdown Preview
+- Go
+
+Optional extensions:
+
+- Bracket Pair Colorizer 2
+- CSS Peek
+- Auto Rename Tag
+- indent-rainbow
+- TabOut
+- Liveshare (pair programming extension)
+
+### User settings
+
+Open the project with VSCode and add the following code into .vscode/settings.json:
+
+```
+{
+  "workbench.colorCustomizations": {
+     /* Put anything you like here */
+  },
+  "editor.snippetSuggestions": "top",
+  "editor.tabSize": 2,
+  "editor.formatOnSave": true,
+  "diffEditor.ignoreTrimWhitespace": false,
+  "window.zoomLevel": 0,
+  "gitlens.advanced.messages": {
+      "suppressShowKeyBindingsNotice": true
+  },
+  "breadcrumbs.enabled": true,
+  "workbench.settings.editor": "json",
+  "editor.tabSize": 2,
+  "editor.formatOnSave": true,
+  "editor.formatOnPaste": true
+}
+```
+
+If this file is not empty, you can simply add the following lines to it:
+
+```
+  "gitlens.advanced.messages": {
+    "suppressShowKeyBindingsNotice": true
+  },
+  "breadcrumbs.enabled": true,
+  "workbench.settings.editor": "json",
+  "editor.formatOnSave": true,
+  "diffEditor.ignoreTrimWhitespace": false,
+  "window.zoomLevel": 0,
+```
+
+## Git
+
+The project is using GitLab, you will need to install Git to checkout the project.
+Installation for Git can be found here: [Installation of Git](https://git-scm.com/) (current version : 1.17)
+
+## Node
+
+For this project, Node version 14 is required.Download [node-v14](https://nodejs.org/en/download/).
+
+Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
+
+## Yarn
+
+Yarn is used as package manager for this project. Feel free to use the one you prefere but we advice to install yarn as all the documentation is described with this package manager.
+Installation for yarn can be found here: [Installation of Yarn](https://classic.yarnpkg.com/fr/docs/install/).
+
+## Docker
+
+Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.
+
+### Install Docker
+
+Installation of Docker can be found here: [Installation of Docker](https://www.docker.com/get-started).
+
+### Install Docker-Compose
+
+Installation of Docker-Compose (according to your OS) is explained here: [Installation of Docker-Compose](https://docs.docker.com/compose/install/).
+
+## Golang
+
+Golang (or Go for short) is an open source programming language that makes it easy to build simple, reliable, and efficient software. It is used in this project for the backend.
+
+Installation of Go (according to your OS) is explained here: [Installation of Go](https://golang.org/doc/install) (current version: 1.17).
diff --git a/docs/ecolyo/ecolyo-agent/introduction.md b/docs/ecolyo/ecolyo-agent/introduction.md
new file mode 100644
index 0000000..617f74e
--- /dev/null
+++ b/docs/ecolyo/ecolyo-agent/introduction.md
@@ -0,0 +1,12 @@
+Ecolyo-Agent is a backoffice for the Ecolyo app that allows to create and edit content for the newsletters sent to the users
+
+This project is split into two parts: backend and frontend; each has its own repository 
+
+!!! info ""
+    If you are a new developper tasked to work on this project, check the [setup your environment](./getting_started/setup_your_environment.md) and [launch the application on local](./getting_started/launch_local_application.md) to start the application.
+
+## Repositories
+
+[Ecolyo-Agent backend gitlab repository](https://forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server)
+
+[Ecolyo-Agent frontend gitlab repository](https://forge.grandlyon.com/web-et-numerique/llle_project/backoffice-client)
\ No newline at end of file
diff --git a/docs/ecolyo/getting_started/launch_local_application.md b/docs/ecolyo/getting_started/launch_local_application.md
index 58ffc53..acff2b9 100644
--- a/docs/ecolyo/getting_started/launch_local_application.md
+++ b/docs/ecolyo/getting_started/launch_local_application.md
@@ -4,7 +4,7 @@ This section will allow you to launch a proper local environment of the Ecolyo a
 
 ### Clone the project repository
 
-Use following command in your favorite terminal to clone the projet:
+Use following command in your favorite terminal to clone the project:
 
 ```
 git clone https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git
@@ -14,7 +14,7 @@ git clone https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git
 
 ### Installation of node modules
 
-To install required node module, open a terminal on the root folder of the projet and type the following command:
+To install required node module, open a terminal on the root folder of the project and type the following command:
 
 ```
 yarn install
diff --git a/docs/ecolyo/getting_started/setup_your_environment.md b/docs/ecolyo/getting_started/setup_your_environment.md
index 4660f1b..0caebf1 100644
--- a/docs/ecolyo/getting_started/setup_your_environment.md
+++ b/docs/ecolyo/getting_started/setup_your_environment.md
@@ -66,7 +66,7 @@ If this file is not empty, you can simply add the following lines to it:
 
 ## Git
 
-The project is using GitLab, you will need to install Git to checkout the projet.
+The project is using GitLab, you will need to install Git to checkout the project.
 Installation for Git can be found here: [Installation of Git](https://git-scm.com/).
 
 ## Node
@@ -77,7 +77,7 @@ Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
 
 ## Yarn
 
-Yarn is used as package manager for this projet. Feel free to use the one you prefere but we advice to install yarn as all the documentation is described with this package manager.
+Yarn is used as package manager for this project. Feel free to use the one you prefere but we advice to install yarn as all the documentation is described with this package manager.
 Installation for yarn can be found here: [Installation of Yarn](https://classic.yarnpkg.com/fr/docs/install/).
 
 ## Docker
diff --git a/docs/ecolyo/project_architecture/environments.md b/docs/ecolyo/project_architecture/environments.md
index 05a48b7..de65204 100644
--- a/docs/ecolyo/project_architecture/environments.md
+++ b/docs/ecolyo/project_architecture/environments.md
@@ -20,7 +20,7 @@ It is based on the easy-cozy project available on GitLab: https://forge.grandlyo
 
 On the server, the .env file has been initialize with the good secrets (see the .env.template) and also initialize to create instance with Ecolyo and the 3 needed konnectors by default.
 
-This projet will build and run 3 images: 
+This project will build and run 3 images: 
 - the cozy stack
 - the couch db
 - keycloack
diff --git a/docs/img/ecolyo-agent/newsletter-template.png b/docs/img/ecolyo-agent/newsletter-template.png
new file mode 100644
index 0000000000000000000000000000000000000000..b87284ddd2b83c0f6d89e68df79ab652fd24e06b
GIT binary patch
literal 54645
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
VHP-#qVqjok@O1TaS?83{1OWTtw}b!y

literal 0
HcmV?d00001

diff --git a/docs/pilote/Pilote - TS - Back/getting_started/launch_local_application.md b/docs/pilote/Pilote - TS - Back/getting_started/launch_local_application.md
index be6894d..1e36cfb 100644
--- a/docs/pilote/Pilote - TS - Back/getting_started/launch_local_application.md	
+++ b/docs/pilote/Pilote - TS - Back/getting_started/launch_local_application.md	
@@ -2,13 +2,13 @@
 
 ### Clone the project repository
 
-Use following command in your favorite terminal to clone the projet:
+Use following command in your favorite terminal to clone the project:
 
 ```
 git clone https://forge.grandlyon.com/solidarite/monparcourssocial/mps-travailleursocial-back.git
 ```
 
-## Installation of the projet
+## Installation of the project
 
 ### Start Pilote application
 
diff --git a/docs/pilote/Pilote - TS - Back/getting_started/setup_your_environment.md b/docs/pilote/Pilote - TS - Back/getting_started/setup_your_environment.md
index e25f847..f8e6d09 100644
--- a/docs/pilote/Pilote - TS - Back/getting_started/setup_your_environment.md	
+++ b/docs/pilote/Pilote - TS - Back/getting_started/setup_your_environment.md	
@@ -32,7 +32,7 @@ User settings for Ecolyo are described in this section: **LINK TO SECTION TO ADD
 
 ## Git
 
-The project is using GitLab, you will need to install Git to checkout the projet.
+The project is using GitLab, you will need to install Git to checkout the project.
 Installation for Git can be found here: [Installation of Git](https://git-scm.com/).
 
 ## Node
@@ -45,7 +45,7 @@ Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
 
 ## Yarn
 
-Yarn is used as package manager for this projet. Feel free to use the one you prefere but we advice to install yarn as all the documentation is described with this package manager.
+Yarn is used as package manager for this project. Feel free to use the one you prefere but we advice to install yarn as all the documentation is described with this package manager.
 Installation for yarn can be found here: [Installation of Yarn](https://classic.yarnpkg.com/fr/docs/install/).
 
 ## Docker
diff --git a/docs/pilote/Pilote - TS - Front/getting_started/launch_local_application.md b/docs/pilote/Pilote - TS - Front/getting_started/launch_local_application.md
index 2f01b10..d33ec25 100644
--- a/docs/pilote/Pilote - TS - Front/getting_started/launch_local_application.md	
+++ b/docs/pilote/Pilote - TS - Front/getting_started/launch_local_application.md	
@@ -2,13 +2,13 @@
 
 ### Clone the project repository
 
-Use following command in your favorite terminal to clone the projet:
+Use following command in your favorite terminal to clone the project:
 
 ```
 git clone https://forge.grandlyon.com/solidarite/monparcourssocial/mps-travailleursocial.git
 ```
 
-## Installation of the projet
+## Installation of the project
 
 ### Start Pilote application
 
diff --git a/mkdocs.yml b/mkdocs.yml
index dc501ad..ef15bb6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -65,6 +65,20 @@ nav:
           - Usage events tracking: ecolyo/functionalities/usage_events_tracking.md
           - Feedback: ecolyo/functionalities/feedback.md
           - Terms: ecolyo/functionalities/terms.md
+      - Ecolyo-Agent: 
+          - Introduction: ecolyo/ecolyo-agent/introduction.md
+          - Getting started:
+            - Setup your environment: ecolyo/ecolyo-agent/getting_started/setup_your_environment.md
+            - Launch the application on local: ecolyo/ecolyo-agent/getting_started/launch_local_application.md
+            - Libraries: ecolyo/ecolyo-agent/getting_started/libraries.md
+          - Functionalities:
+            - General: ecolyo/ecolyo-agent/functionalities/general.md
+            - Authentification: ecolyo/ecolyo-agent/functionalities/authentification.md
+            - Routes: ecolyo/ecolyo-agent/functionalities/routes.md
+          - Development:
+            - Deploy: ecolyo/ecolyo-agent/development/deploy.md
+            - Handle assets: ecolyo/ecolyo-agent/development/handle_assets.md
+            - Backup: ecolyo/ecolyo-agent/development/backup.md
   - Pilote:
       - Pilote - TS - Back:
           - Index: pilote/Pilote - TS - Back/index.md
-- 
GitLab