{
    "componentChunkName": "component---src-templates-docs-post-js",
    "path": "/en/documentation/fr/developpers/tridyme-webapp-kit-serverless/",
    "result": {"data":{"markdownRemark":{"html":"<!-- <a href=\"http://triazur.com\"><img style=\"width:55px;height:55px\" width=\"100\" height=\"100\" src=\"https://www.triazur.com/static/TriAzurIcon-40ace683b384504022a625add24052b7.png?v=3&s=50\" title=\"Triazur\" alt=\"Triazur\"></a> -->\n<h2>Créer mon application</h2>\n<blockquote>\n<p>Afin de permettre aux ingénieurs de pouvoir développer leurs propres applications en ligne, TriAzur met à disposition le kit de développement <a href=\"https://gitlab.com/triazur/triazur-webapp-kit-serverless.git\" target=\"_blank\">triazur-webapp-kit-serverless</a>.</p>\n</blockquote>\n<blockquote>\n<p>Ce projet vous permet de créer et de publier vos propres applications de ligne et de les proposer dans la marketplace de TriAzur.</p>\n</blockquote>\n<h2>Sommaire (Optional)</h2>\n<ul>\n<li><a href=\"#installations\">Installations</a></li>\n<li><a href=\"#create-my-own-app\">Créer notre première application</a></li>\n<li><a href=\"#add-features\">Ajouter des fonctionnalités</a></li>\n<li><a href=\"#components\">Les composants</a></li>\n<li><a href=\"#modify-add-components\">Modification et ajout de composant</a></li>\n<li><a href=\"#online-webapp\">Mettre son application en ligne</a></li>\n<li><a href=\"#license\">License</a></li>\n</ul>\n<h2><a name=\"installations\"></a>Installations</h2>\n<p>Les prérequis suivants doivent être installé:</p>\n<ul>\n<li>Un environnement d'exécution JavaScript: <a href=\"#nodejs\">Node.js</a>, téléchargeable <a href=\"https://nodejs.org/fr/download/\" target=\"_blank\"><strong>ici</strong></a></li>\n<li>Un logiciel de gestion de versions: <a href=\"#git\">Git</a>, téléchargeable <a href=\"https://git-scm.com/downloads\" target=\"_blank\"><strong>ici</strong></a></li>\n<li>Un éditeur de code cross-platform: <a href=\"#vscode\">VSCode</a>, téléchargeable <a href=\"https://code.visualstudio.com/Download\" target=\"_blank\"><strong>ici</strong></a></li>\n</ul>\n<h3><a name=\"nodejs\"></a>Node.js</h3>\n<p><a href=\"https://gitlab.com/triazur/triazur-webapp-kit-serverless.git\" target=\"_blank\"><strong>triazur-webapp-kit-serverless</strong></a> est écrit en <a href=\"https://fr.reactjs.org/\" target=\"_blank\"><strong>React.js</strong></a> qui lui même nécessite <a href=\"https://nodejs.org/fr/\" target=\"_blank\"><strong>Node.js</strong></a>. <strong>Node.js</strong> est un environnement d'exécution JavaScript installable partout, qui permet d'écrire n'importe quel type de programme en JavaScript : outil en ligne de commande, serveur, application desktop, internet des objets (IoT).</p>\n<p>Pour installer Node.js, allez sur <a href=\"https://nodejs.org/fr/download/\" target=\"_blank\">**<a href=\"https://nodejs.org/fr/download/**\">https://nodejs.org/fr/download/**</a></a> puis suivez les instructions.</p>\n<p>Afin de vérifier que Node.js a été bien installé, vous pouvez utiliser <strong>Invite de Commandes</strong> (cmd.exe sur Windows), et tapez la commande <code class=\"language-text\">node -v</code> afin de vérifier que vous n'avez pas de message d'erreur et que la version de Node est supérieur à la version 6.</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token function\">node</span> <span class=\"token parameter variable\">-v</span>\nv10.3.0</code></pre></div>\n<p><strong>Node.js</strong> est installé avec <strong>npm</strong> est le gestionnaire de modules de Node. Afin de vérifier que <strong>npm</strong> est bien installé et que la version de Node est supérieur à la version 5, tapez la commande <code class=\"language-text\">npm -v</code> :</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token function\">npm</span> <span class=\"token parameter variable\">-v</span>\n<span class=\"token number\">6.9</span>.0</code></pre></div>\n<h3><a name=\"git\"></a>Git</h3>\n<p><a href=\"https://git-scm.com/\"><strong>Git</strong></a> est un logiciel de gestion de versions, il permet de versionner, d'enregistrer et de rendre open-source du code. Pour l'installer: <a href=\"https://git-scm.com/downloads\" target=\"_blank\">**<a href=\"https://git-scm.com/downloads**\">https://git-scm.com/downloads**</a></a>.</p>\n<p>De même, pour vérifier que l'installation c'est bien déroulé, taper la commande <code class=\"language-text\">git version</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token function\">git</span> version\n<span class=\"token function\">git</span> version <span class=\"token number\">2.21</span>.0.windows.1</code></pre></div>\n<h3><a name=\"git\"></a>Créer un compte Gitlab</h3>\n<p>Les sites <a href=\"https://github.com/\">Github</a> et <a href=\"https://gitlab.com/\">GitLab</a> utilisent <strong>Git</strong> pour permettre aux utilisateurs de pouvoir stocker leurs codes et de le partager.</p>\n<p>Le code peut être stocké de manière publique, on parle alors d'<strong>Open Source</strong>, où de manière privée.</p>\n<p>Nous présenterons <a href=\"https://gitlab.com/\">GitLab</a> qui a l'avantage de pouvoir stocker gratuitement une nombre de projet privé illimité.</p>\n<p>Pour clea il suffit de créer un compte sur <a href=\"https://gitlab.com/\">GitLab</a> à l'adresse suivante: <a href=\"https://gitlab.com/users/sign_in\">https://gitlab.com/users/sign_in</a></p>\n<p>Ensuite nous allons créer un nouveau projet que nous nommons: <strong>my-first-app</strong>.</p>\n<p>Nous devons ensuite configurer Git pour spécifier le compte GitLab avec lequel il doit ser synchroniser, pour cela il suffit d'indiquer notre <strong>username</strong> et <strong>notre email</strong></p>\n<h3><a name=\"vscode\"></a>VSCode (recommandé)</h3>\n<p>Afin de pouvoir développer son application, le plus simple est d'utiliser <a href=\"https://code.visualstudio.com\"><strong>VSCode</strong></a> qui est un éditeur de code cross-platform, open-source et gratuit supportant une dizaine de langages.</p>\n<p>Pour l'installer: <a href=\"https://code.visualstudio.com/Download\" target=\"_blank\">**<a href=\"https://code.visualstudio.com/Download**\">https://code.visualstudio.com/Download**</a></a>.</p>\n<h2><a name=\"create-my-own-app\"></a>Créer notre première application</h2>\n<h3>Clone triazur-webapp-kit-serverless</h3>\n<p>Afin de créer notre première application, commençons par cloner <a href=\"https://gitlab.com/triazur/triazur-webapp-kit-serverless.git\" target=\"_blank\"><strong>triazur-webapp-kit-serverless</strong></a> grâce à <strong>git</strong> dans le repertoire ou nous souhaitons :</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token function\">git</span> clone https://gitlab.com/triazur/triazur-webapp-kit-serverless.git\nCloning into <span class=\"token string\">'triazur-webapp-kit-serverless'</span><span class=\"token punctuation\">..</span>.\nremote: Enumerating objects: <span class=\"token number\">91</span>, done.\nremote: Counting objects: <span class=\"token number\">100</span>% <span class=\"token punctuation\">(</span><span class=\"token number\">91</span>/91<span class=\"token punctuation\">)</span>, done.\nremote: Compressing objects: <span class=\"token number\">100</span>% <span class=\"token punctuation\">(</span><span class=\"token number\">76</span>/76<span class=\"token punctuation\">)</span>, done.\nremote: Total <span class=\"token number\">91</span> <span class=\"token punctuation\">(</span>delta <span class=\"token number\">13</span><span class=\"token punctuation\">)</span>, reused <span class=\"token number\">0</span> <span class=\"token punctuation\">(</span>delta <span class=\"token number\">0</span><span class=\"token punctuation\">)</span>\nUnpacking objects: <span class=\"token number\">100</span>% <span class=\"token punctuation\">(</span><span class=\"token number\">91</span>/91<span class=\"token punctuation\">)</span>, done.</code></pre></div>\n<!-- ![triazur web app](http://g.recordit.co/zkvt46c4Bd.gif) -->\n<h3>Démarrage</h3>\n<p>Une fois le clonage finalisé, vous pouvez renommer le dossier <strong>triazur-webapp-kit-serverless</strong> comme vous le souhaitez, ici nous l'appelerons <strong>my-first-app</strong>:</p>\n<p>Puis, entrez dans votre dossier, lancez l'installation des modules <strong>Node.js</strong> via la commande <code class=\"language-text\">npm install</code> et enfin démarrez l'application avec <code class=\"language-text\">npm start</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token builtin class-name\">cd</span> ./my-first-app\n$ <span class=\"token function\">npm</span> <span class=\"token function\">install</span>\n$ <span class=\"token function\">npm</span> start</code></pre></div>\n<p>Notez que notre application a dû s'ouvrir automatiquement dans notre navigateur (si ce n'est pas le cas, ouvrez un nouvel onglet dans votre navigateur et saisissez l'URL indiquée par la commande dans le terminal, normalement  <a href=\"http://localhost:3000/\">http://localhost:3000/</a> ).</p>\n<p>Cette application permet de calculer la surface d'un rectangle ainsi que son inertie suivant X.</p>\n<h2><a name=\"add-features\"></a>Ajouter des fonctionnalités</h2>\n<p>A présent, nous souhaitons pouvoir également calculer l'inertie du rectangle suivant Y.</p>\n<p>Afin de modifier notre application, allez dans le dossier <code class=\"language-text\">src</code>.\nOn y trouve le point d’entrée de l’application <code class=\"language-text\">src/index.js</code> ainsi que le composant <a href=\"https://fr.reactjs.org/\" target=\"_blank\"><strong>React.js</strong></a> contenant notre application à savoir <code class=\"language-text\">src/MyApp.jsx</code>.</p>\n<p>Cependant afin de rajouter notre calcul, seul les quatres fichiers suivant nous intéressent:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 323px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 205.05050505050505%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAApCAIAAAC6D54pAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAEgElEQVR42o1WWXMbRRDe50DBAw9AuYikOXdm79Xe2vsSyuFE8hULH1WxA0kwBFKBF/48vaZIUoksu+urKe1ovp3+ume6V2nb9vj4+PDwEMaDg4P9/b3w2qKPDB67B13/Y3d+cV5XNdje3n7X9YrjuHECNpulaRTHaZp5nm+almGY76HrhjsF8/K8cIdfXhBGsEZhlGlSsy3bm05hdB136k5VrmKECSbvAY+A8XgMI0KYYoImSGFcGKbV5MHuPJNCXM9TSjlln0AFsGHk8K9lGZQx5ev+aufJW+2nf77qXt+rXt6rf7lXv/yyfb0FXzSvdpZ/f5MeK98Gj0bZylycTKqjSXWIYCwPvwsfw/yN8B/uzJbfO5XCJiONUdc0+qqYV2VbpE2RSophnqPxFtDJWKGEmYYlHY2Fgvni/gSNxoiCIMYZvQGEq7qkhCo/QHSEFKYVJdNZ5udZ4AcOE+qI0AllGzEmTBoaLFAuEXtM+JmlvwqdP/PobRH9nganprEk7CnejCeInhjGmjDlV8w8RJ/6bOWbp1l0kgZnRXhWRAtDTxHNCfscGaJPPOdcFcoBImdcXOjmmSPOp9qasmdjssZsjelNOJ7QU8F3EVZgXY7p3PTmrjGfis4SreQVpjVhG9Ew1kteGOKSgtuI7YIG21k75mlkn4TW2tWPuNgnfA+zDSDsUKpPDfEONEvKJMgISZfFj5rFbr942PZ9WdlSk4RqcPI/wzBPGMdEGUFOValbFptKERnckZgyRBiiN4Mwqqn3CVEur0N/oDlHjvEs0I4ceaCpe5yvEFvhzdhnfAWaybXmDJNd15ub+sLX5o5YeFoneYNpS9gGYDYXauXIK8qVx4QuEb30yVUavWsf/NUt3pTtm6J+JuQSkRWmG7EckQdjrPw8Ya1kxwE/T/wXZfiijC/y6KGm3bgzZAvR5dR+zgWQ6Z6QzwP3jzR5W6RXcfhbEh5xdYXo5lQBEF3r+nPQjClVhW5Mkyov2qYri8qb+p/XkU/ACIUyBVcS2Lp046EoNi0MUOImk+FWbgPQgYwJ0zUWx1qa5lCGgQwF1HEcMlSybXwMZIKpNI0wcmDfsqzyPI/jxLbvRqaEcCfww7RpmiiKOVfH4wkeKii7nYwx8z0ax17TdFDOQe1QgIb6ejdyFPI0Ddu2B5+DIFRVcSvzg2bH08LIB83QcoAvhLxV8AfNzI69MJn3fZYX0KjuIvgjzQGKIreq6izLIGB32fZ/twkN3WgWzyBPRVFC7xv62F13JiRy8iwBLiS5gMYMob5LzAYyQiyMUBS7aVrAzk0Dx6yDt0ipbfd/IENswzAGpGlaDjY4D3zLsrdHbiBzVZi2Axn6jwbfCJBq3w9uTdhABoFC0yHU8I2RZzkEbASdDu7bVibEhUABNAw4XnqaVWXVFEWdzLK66fquh7uxxW1ICEJE0XU2S0SdRfN6VudRnnhJ6AmhbTne8M7Qs4XKFaFJP3bbctbX2aIryjR0bXN7qECRYxmcM2VotV4CoarqFipJVTXwpQSat18sfO32v/+nyIpzowQ3AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"src\"\n        title=\"src\"\n        src=\"/static/85af4193117fd3d3d3ec0bfc0c3fecef/def35/triazur-webapp-src-files.png\"\n        srcset=\"/static/85af4193117fd3d3d3ec0bfc0c3fecef/c7176/triazur-webapp-src-files.png 198w,\n/static/85af4193117fd3d3d3ec0bfc0c3fecef/def35/triazur-webapp-src-files.png 323w\"\n        sizes=\"(max-width: 323px) 100vw, 323px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<ul>\n<li><a href=\"#calculationjs\"><code class=\"language-text\">calculations.js</code></a>, est le fichier qui contient nos fonctions de calculs, par exemple la fonction permetant de calculer la surface du rectangle</li>\n<li><a href=\"#inputsjsx\"><code class=\"language-text\">Inputs.jsx</code></a>, est le fichier qui affiche nos inputs tels que la hauteur où la largeur du rectangle</li>\n<li><a href=\"#outputsjsx\"><code class=\"language-text\">Outputs.jsx</code></a>, est le fichier qui affiche nos inputs tels que la surface où l'inertie du rectangle</li>\n<li><a href=\"#initialdatajs\"><code class=\"language-text\">initialData.js</code></a>, est le fichier qui contient les valeurs initiales, les descriptifs de inputs et des outputs ainsi que les unités.</li>\n</ul>\n<h3><a name=\"initialdatajs\"></a>Valeurs initiales: initialData.js</h3>\n<p>Ce fichier contient donc les données que l'on souhaite afficher et calculer. Chaque élément que l'on souhaite afficher doit avoir la structure suivante:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token constant\">A</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>    <span class=\"token comment\">// Indice de l'élément à afficher</span>\n  <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">'A'</span><span class=\"token punctuation\">,</span>    <span class=\"token comment\">// Nom de l'élément à afficher, doit être égale à l'Indice </span>\n  <span class=\"token literal-property property\">text</span><span class=\"token operator\">:</span> <span class=\"token string\">'Surf'</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// Texte qui sera afficher</span>\n  <span class=\"token literal-property property\">value</span><span class=\"token operator\">:</span> <span class=\"token number\">15</span><span class=\"token punctuation\">,</span>    <span class=\"token comment\">// Valeur initiale</span>\n  <span class=\"token literal-property property\">description</span><span class=\"token operator\">:</span> <span class=\"token string\">'Surface du rectangle en m2'</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// Description de l'élément</span>\n  <span class=\"token literal-property property\">unit</span><span class=\"token operator\">:</span> <span class=\"token string\">'m2'</span> <span class=\"token comment\">// Unité de l'élément</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>   </code></pre></div>\n<p>Nous souhaitons calculer l'inertie de la section rectangulaire suivant Y. Pour cela, nous rajoutons dans la partie <code class=\"language-text\">initialData.outputs</code> :</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token literal-property property\">Iyy</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">'Iyy'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token literal-property property\">text</span><span class=\"token operator\">:</span> <span class=\"token string\">'Iyy'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token literal-property property\">value</span><span class=\"token operator\">:</span> <span class=\"token number\">31.25</span><span class=\"token punctuation\">,</span>\n  <span class=\"token literal-property property\">description</span><span class=\"token operator\">:</span> <span class=\"token string\">'Inertie du rectangle suivant y'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token literal-property property\">unit</span><span class=\"token operator\">:</span> <span class=\"token string\">'m4'</span>\n<span class=\"token punctuation\">}</span>  </code></pre></div>\n<h3><a name=\"calculationjs\"></a>Le calcul: calculation.js</h3>\n<p>Ce fichier permet de rajouter en un seul endroit toutes les fonctions de calcul que l'on souhaite. Ces fonctions prennent en paramètre <strong>inputs</strong> qui regroupe l'ensemble des <strong>inputs</strong> que l'on a définit dans la partie <code class=\"language-text\">initialData.outputs</code> du fichier <code class=\"language-text\">initialData.js</code>.</p>\n<p>Par exemple, la fonction permettant de calculer la surface d'un section:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token function-variable function\">surfaceRectangle</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">inputs</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>   <span class=\"token comment\">// Prends en paramètre \"inputs\"</span>\n  <span class=\"token keyword\">const</span> h <span class=\"token operator\">=</span> inputs<span class=\"token punctuation\">.</span>h<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>   <span class=\"token comment\">// Dans \"inputs\", on souhaite avoir la valeur de la hauteur \"h\" du rectangle</span>\n  <span class=\"token keyword\">const</span> b <span class=\"token operator\">=</span> inputs<span class=\"token punctuation\">.</span>b<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>   <span class=\"token comment\">// Dans \"inputs\", on souhaite avoir la valeur de la largeur \"b\" du rectangle</span>\n\n  <span class=\"token keyword\">const</span> surface <span class=\"token operator\">=</span> b <span class=\"token operator\">*</span> h<span class=\"token punctuation\">;</span>  <span class=\"token comment\">// On calcule la surface du rectangle </span>\n\n  <span class=\"token keyword\">return</span> surface<span class=\"token punctuation\">;</span> <span class=\"token comment\">// On retourne la surface du rectangle</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// NE PAS OUBLIER LA VIRGULE</span></code></pre></div>\n<p>Afin de pouvoir calculer l'inertie d'une section rectangulaire suivant l'axe Y, on rajoute donc à la suite la fonction suivante:</p>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token function-variable function\">inertiaYY</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">inputs</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> h <span class=\"token operator\">=</span> inputs<span class=\"token punctuation\">.</span>h<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">const</span> b <span class=\"token operator\">=</span> inputs<span class=\"token punctuation\">.</span>b<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">const</span> Iyy <span class=\"token operator\">=</span> h <span class=\"token operator\">*</span> b<span class=\"token operator\">**</span><span class=\"token number\">3</span> <span class=\"token operator\">/</span><span class=\"token number\">12</span><span class=\"token punctuation\">;</span>\n  \n  <span class=\"token keyword\">return</span> Iyy<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// NE PAS OUBLIER LA VIRGULE</span></code></pre></div>\n<h3><a name=\"inputsjsx\"></a>Les inputs: Inputs.jsx</h3>\n<p>Une fois les éléments définis, on peut afficher les <strong>inputs</strong> dans le fichier <code class=\"language-text\">Inputs.jsx</code> en insérant un composant <code class=\"language-text\">InputElem</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- InputElem correspondant à la largeur \"b\" de la section rectangulaire --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>InputElem</span> \n  <span class=\"token attr-name\">data</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{inputsData.b}</span>\n  <span class=\"token attr-name\">updateValue</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{updateValue}</span>\n<span class=\"token punctuation\">/></span></span>\n<span class=\"token comment\">&lt;!-- InputElem correspondant à la hauteur \"h\" de la section rectangulaire --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>InputElem</span> \n  <span class=\"token attr-name\">data</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{inputsData.h}</span>\n  <span class=\"token attr-name\">updateValue</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{updateValue}</span>\n<span class=\"token punctuation\">/></span></span></code></pre></div>\n<p>On spécifie ainsi dans <code class=\"language-text\">data={inputsData.h}</code> que l'on fait référence à l'élément ayant l'indice <code class=\"language-text\">h</code> dans le fichier <code class=\"language-text\">initialData.js</code>.</p>\n<h3><a name=\"outputsjsx\"></a>Les outputs: Outputs.jsx</h3>\n<p>De même, on peut afficher les <strong>outputs</strong> dans le fichier <code class=\"language-text\">Outputs.jsx</code> en insérant un composant <code class=\"language-text\">OutputElem</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- OutputElem correspondant à la surface \"A\" de la section rectangulaire --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>OutputElem</span> \n  <span class=\"token attr-name\">data</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{outputsData.A}</span>\n  <span class=\"token attr-name\">inputsData</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{inputsData}</span>\n  <span class=\"token attr-name\">calculationFunctions</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{calculationFunctions.surfaceRectangle}</span>\n<span class=\"token punctuation\">/></span></span></code></pre></div>\n<p>On spécifie ainsi dans <code class=\"language-text\">data={outputsData.A}</code> que l'on fait référence à l'élément ayant l'indice <code class=\"language-text\">A</code> dans le fichier <code class=\"language-text\">initialData.js</code> et dans <code class=\"language-text\">calculationFunctions</code> la fonction de calcul que l'on souhaite utiliser.</p>\n<p>Ainsi pour afficher l'inertie de la section rectangulaire suivant Y, on ajoute le composant suivant:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>OutputElem</span> \n  <span class=\"token attr-name\">data</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{outputsData.Iyy}</span>\n  <span class=\"token attr-name\">inputsData</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{inputsData}</span>\n  <span class=\"token attr-name\">calculationFunctions</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{calculationFunctions.inertiaYY}</span>\n<span class=\"token punctuation\">/></span></span></code></pre></div>\n<h2><a name=\"components\"></a>Les composants</h2>\n<p>Nous avons vu les composants <code class=\"language-text\">InputElem</code> et <code class=\"language-text\">OutputElem</code> qui permettent respectivement d'afficher les <strong>inputs</strong> et les <strong>outputs</strong> définis dans <strong>initialData.js</strong>.\nLes composants sont listés dans le dossier <code class=\"language-text\">src/Components</code>:</p>\n<ul>\n<li><a href=\"#inputelem\"><code class=\"language-text\">InputElem</code></a></li>\n<li><a href=\"#outputelem\"><code class=\"language-text\">OutputElem</code></a></li>\n<li><a href=\"#chartelem\"><code class=\"language-text\">ChartElem</code></a></li>\n</ul>\n<h3><a name=\"inputelem\"></a>InputElem</h3>\n<p><code class=\"language-text\">InputElem</code> sert à définir les <strong>inputs</strong> de l'application, il possède les propriétées:</p>\n<ul>\n<li><code class=\"language-text\">data</code>: permet d'associer à un élément définis dans la partie <strong>initialData.inputs</strong> de <strong>initialData.js</strong></li>\n<li><code class=\"language-text\">updateValue</code>: permet de mettre à jour la valeur de l'élément</li>\n</ul>\n<p>Exemple:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- Affiche l'input \"h\" définit dans le fichier initialData.js --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>InputElem</span> \n  <span class=\"token attr-name\">data</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{inputsData.h}</span>\n  <span class=\"token attr-name\">updateValue</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{updateValue}</span>\n<span class=\"token punctuation\">/></span></span></code></pre></div>\n<h3><a name=\"outputelem\"></a>OutputElem</h3>\n<p><code class=\"language-text\">OutputElem</code> sert à définir les <strong>outputs</strong> de l'application, il possède les propriétées:</p>\n<ul>\n<li><code class=\"language-text\">data</code>: permet d'associer à un élément définis dans la partie <strong>initialData.outputs</strong> de <strong>initialData.js</strong></li>\n<li><code class=\"language-text\">inputsData</code>: permet d'associer les <strong>inputs</strong></li>\n<li><code class=\"language-text\">calculationFunctions</code>: permet d'associer une fonction de calcul définis dans <strong>calculations.js</strong></li>\n</ul>\n<p>Exemple:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- Affiche l'output \"A\" définis dans le fichier initialData.js\n  associé à la fonction \"surfaceRectangle\" définis dans le fichier \"calculation.js\"\n  --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>OutputElem</span> \n  <span class=\"token attr-name\">data</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{outputsData.A}</span>\n  <span class=\"token attr-name\">inputsData</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{inputsData}</span>\n  <span class=\"token attr-name\">calculationFunctions</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{calculationFunctions.surfaceRectangle}</span>\n<span class=\"token punctuation\">/></span></span></code></pre></div>\n<h3><a name=\"chartelem\"></a>ChartElem</h3>\n<p><code class=\"language-text\">ChartElem</code> permet d'afficher des graphes, il possède la propriété:</p>\n<ul>\n<li><code class=\"language-text\">dataForChart</code>: prend en paramètre un objet qui possède lui-même les propriétées suivantes:\n<ul>\n<li><code class=\"language-text\">dataForChart</code>: qui une chaîne de caractère et qui correspond au titre du graphe</li>\n<li><code class=\"language-text\">value</code>: qui est un tableau contenant l'ensemble des coordonnées <strong>{x: X, y: Y}</strong> que l'on souhaite afficher</li>\n<li><code class=\"language-text\">axisName</code>: qui est un objet contenant le nom des axes que l'on souhaite afficher: <strong>{x: nomAxeX, y: nomAxeY}</strong></li>\n<li><code class=\"language-text\">unit</code>: qui est un objet contenant le nom unités que l'on souhaite afficher: <strong>{x: unitéAxeX, y: unitéAxeY}</strong></li>\n</ul>\n</li>\n</ul>\n<p>Exemple:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>ChartElem</span>\n  <span class=\"token attr-name\">dataForChart</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span>{{</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">chartTitle:</span></span> <span class=\"token attr-name\">'Section</span> <span class=\"token attr-name\">Rectangulaire',</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">value:</span></span> <span class=\"token attr-name\">[</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">0,</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">0},</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">inputsData.b.value,</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">0},</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">inputsData.b.value,</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">inputsData.h.value},</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">0,</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">inputsData.h.value},</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">0,</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">0}</span>\n    <span class=\"token attr-name\">],</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">axisName:</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">'Largeur</span> <span class=\"token attr-name\">de</span> <span class=\"token attr-name\">la</span> <span class=\"token attr-name\">Section</span> <span class=\"token attr-name\">',</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">'Hauteur</span> <span class=\"token attr-name\">de</span> <span class=\"token attr-name\">la</span> <span class=\"token attr-name\">section</span> <span class=\"token attr-name\">'},</span>\n    <span class=\"token attr-name\"><span class=\"token namespace\">unit:</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">{x:</span></span> <span class=\"token attr-name\">'m',</span> <span class=\"token attr-name\"><span class=\"token namespace\">y:</span></span> <span class=\"token attr-name\">'m'}</span>\n  <span class=\"token attr-name\">}}</span>\n<span class=\"token punctuation\">/></span></span></code></pre></div>\n<h2><a name=\"modify-add-components\"></a>Modification et ajout de composant</h2>\n<p>les composants éxistants de <a href=\"https://gitlab.com/triazur/triazur-webapp-kit-serverless.git\" target=\"_blank\"><strong>triazur-webapp-kit-serverless</strong></a> sont écrits en <a href=\"https://fr.reactjs.org/\" target=\"_blank\"><strong>React.js</strong></a>, ils sont donc entièrement modifiables.</p>\n<p>Il est également possible de rajouter des composants. Pour plus d'information, voir les tutoriels suivants:</p>\n<ul>\n<li>Pour <strong>React.js</strong> sur Openclassrooms: <a href=\"https://openclassrooms.com/fr/courses/4664381-realisez-une-application-web-avec-react-js\" target=\"_blank\">Réalisez une application web avec React.js</a></li>\n<li><strong>React.js</strong> est basé lui-même sur <strong>Javascript</strong> qui est le language permettant de faire des calculs dans le navigateur web, pour plus d'information, voir le tutoriel d'Openclassrooms: <a href=\"https://openclassrooms.com/fr/courses/1916641-dynamisez-vos-sites-web-avec-javascript\" target=\"_blank\">Dynamisez vos sites web avec JavaScript</a></li>\n</ul>\n<h2><a name=\"online-webapp\"></a>Mettre son application en ligne</h2>\n<p>Afin de mettre son application en ligne, nous allons utiliser <a href=\"https://www.heroku.com/\" target=\"_blank\"><strong>Heroku</strong></a> qui permet de dépoyer des applications de manière gratuite.</p>\n<h3>Installation d'Heroku</h3>\n<p>Pour cela, il faut d'abord:</p>\n<ul>\n<li>Créer un compte Heroku: <a href=\"https://signup.heroku.com/login\" target=\"_blank\"><a href=\"https://signup.heroku.com/login\">https://signup.heroku.com/login</a></a></li>\n<li>Puis installer <a href=\"https://devcenter.heroku.com/articles/heroku-cli#download-and-install\" target=\"_blank\">Heroku</a>:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token function\">npm</span> <span class=\"token function\">install</span> <span class=\"token parameter variable\">-g</span> heroku</code></pre></div>\n<p>Afin de vérifier qu'Heroku est correctement déployé:</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ heroku <span class=\"token parameter variable\">--version</span>\n<span class=\"token comment\">#   heroku/7.0.0 (darwin-x64) node-v8.0.0</span></code></pre></div>\n<h3>Déploiement de l'application</h3>\n<p>Puis utiliser <strong>Git</strong> pour deployer l'application sur <a href=\"https://www.heroku.com/\" target=\"_blank\"><strong>Heroku</strong></a>:</p>\n<div class=\"gatsby-highlight\" data-language=\"shell\"><pre class=\"language-shell\"><code class=\"language-shell\">$ <span class=\"token function\">git</span> <span class=\"token function\">add</span> <span class=\"token builtin class-name\">.</span>\n$ <span class=\"token function\">git</span> commit <span class=\"token parameter variable\">-m</span> <span class=\"token string\">\"Added a Procfile.\"</span>\n$ heroku login\n<span class=\"token comment\">#   Heroku credentials</span>\n$ heroku create\n$ <span class=\"token function\">git</span> push heroku master\n<span class=\"token comment\">#   Launching... done</span>\n<span class=\"token comment\">#      http://example.herokuapp.com deployed to Heroku</span></code></pre></div>\n<p>Votre application devrait être disponible sur <strong><a href=\"http://example.herokuapp.com\">http://example.herokuapp.com</a></strong>.</p>\n<h2>License</h2>\n<p><a href=\"http://badges.mit-license.org\"><img src=\"http://img.shields.io/:license-mit-blue.svg?style=flat-square\" alt=\"License\"></a></p>\n<ul>\n<li><strong><a href=\"http://opensource.org/licenses/mit-license.php\">MIT license</a></strong></li>\n<li>Copyright 2019 © <a href=\"http://triazur.com\" target=\"_blank\">TRIAZUR</a>.</li>\n</ul>","frontmatter":{"title":"Developpers: triazur-webapp-kit-serverless","date":"19 June, 2019","author":"Guillaume Cassin","language":"fr-Fr","description":null,"featuredImage":null},"fields":{"slug":"/documentation/fr/developpers/tridyme-webapp-kit-serverless/"}}},"pageContext":{"slug":"/documentation/fr/developpers/tridyme-webapp-kit-serverless/","locale":"en"}},
    "staticQueryHashes": ["2349346863"]}