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 : + + + +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