Projet

Général

Profil

Wiki » Historique » Version 3

Cédric Chauvel, 28/06/2022 11:18

1 1 Cédric Chauvel
====== Hydroviz ======
2
3 2 Cédric Chauvel
Hébergée dans un conteneur Docker sur le Serveur wappsd
4 1 Cédric Chauvel
5
------
6
7 3 Cédric Chauvel
Développeur : Groupe d'étudiants lors du Hackathon 2019, repris par Chauvel Cedric
8 1 Cédric Chauvel
9 3 Cédric Chauvel
serveur  wappsd
10 1 Cédric Chauvel
11
URL d'accès https://hydroviz.univ-brest.fr/
12
13
URL depuis laquelle cet app est appelée : http://www-iuem.univ-brest.fr/observatoire/observation… A COMPLETER
14
15
Répertoire sur le serveur  ''/app/hydroviz''
16
17
Langage(s) : Javascript (Node.js) - Css - Html
18
19
projet forge : https://tucuxi.univ-brest.fr/projects/hydroviz
20
21
modules nécessaire : Node.js + express v16.15.1 et npm v8.11.0
22
23
base de données
24
  * serveur : pgiuem
25
  * type : postgresql
26 3 Cédric Chauvel
  * base : Somlit
27 1 Cédric Chauvel
28
------
29
30
===== Description =====
31
32
HydroViz est une console « démonstratrice » développée à l’occasion  de l'Ocean Hackathon 2019 par une équipe de jeunes ingénieurs(es), à l’initiative d’un défi porté par le service d’observation de l’IUEM (P. Rimmelin-Maury).    
33
34
L'application récupère les données d'un fichier CSV et affiche une console de visualisation des principales données hydrologiques côtières enregistrées au niveau de la station d’observation long terme de Ste Anne-du-Portzic, en rade de Brest.
35
36
Cette application a été développée pour répondre au besoin d’information claire et synthétique de néophytes préoccupés par l’état de leur environnement naturel.
37
38
Le projet a ensuite été repris par le SIMI pour en faire une application web connectée à la base de données Somlit.
39
40
===== Installation =====
41
42
C'est une application Node.js + Express (framework) donc il faut installer le module :
43
44
<code>sudo apt install nodejs</code>
45
46
On se place dans le dossier contenant le code
47
48
** Installation de npm (gestionnaire de package de noeud pour javascript) **
49
50
<code>sudo apt install npm</code>
51
52
** initalisation **
53
54
<code>npm init</code>
55
56
** installation client postgresql **
57
58
<code>
59
npm install pg
60
npm install dotenv
61
npm list (pour vérifier)</code>
62
63
** installer un moteur nodejs pour executer l'application dans un navigateur **
64
65
<code>sudo npm install -g express-generator</code>
66
67
** Créer une nouvelle application "hydroviz_nodejs" **
68
69
<code>express hydroviz_nodejs --view=pug</code>
70
71
** Se placer dans le dossier de l'application **
72
73
<code>cd hydroviz_nodejs</code>
74
75
** Pour lancer l'application il faut faire les 2 commandes suivantes : **
76
77
<code>node app.js</code>
78
79
puis
80
81
<code>npm install</code>
82
83
===== Construction de l'application =====
84
85 3 Cédric Chauvel
!Capture_arborescence_projet.png!
86 1 Cédric Chauvel
87
==== Détails du projet : ====
88
89
**controllers :**
90
    * base_controller.js : fait le lien entre le modèle base_model.js et la vue base.pug
91
**models :**
92
    * base_model.js : code qui s'éxécute coté serveur, se connecte a la base de données, envoie une requete sql et récupère les résultats de la requête.
93
	
94
**views :**
95
    * base.pug : page qui affiche le résultat de la requête
96
	
97
**node_modules :** dossier contenant les modules indiqués dans le fichier package.json et installés par Node.js
98
99
**public :**
100
    * images : contient les images utlisés dans les pages de l'application
101
    * javascripts : les fichiers javascript qui gèrent les interactions dans les pages
102
        * sketch2.js :
103
        * papaparse.js : fichier javascript issu de la librairie ([[https://www.papaparse.com/|Papaparse]]) qui est un Parser pour fichier CSV
104
        * p5.js : fichier javascript issu de la librairie [[https://p5js.org/|p5]] permettant à des néophytes du développement web de créer et customiser des pages facilement.
105
    * stylesheets : les fichiers CSS (style des pages)
106
    * data.html : page qui affiche les graphiques
107
108
**app.js :** fichier principal de l'application, est éxécuté lors de l'appel de la page /base. Établit la connexion avec la base de données Somlit, lance la requête et récupère les résultats puis fait les calculs de moyenne par mois avant de créer un fichier CSV qui sera lu par la page data.html
109
110
**package.json :** fichiers contenant le détail des modules nécessaires au bon fonctionnement de l'application ainsiq ue la version requise
111
112
**routes.js :** Comme son nom l'indique ce fichier décrit les chemins utilisés par l'application pour envoyer le bon fichier en fonction de la page demandée par l'utilisateur.
113
114
**update.sh :** script qui récupère le code sur git et met à jour le code sur le serveur
115
116
117
===== Fonctionnement =====
118
119
Une tâche planifiée (cron) est executée tous les mois pour lancer la page /base qui créé le fichier CSV. Les graphiques affichés sur la page d'accueil sont construits à partir de ce fichier CSV. 
120
121
<wrap round info>27-06-2022 : Le cron n'est pas encore mis en place car il faut connecter Somlit au WS pour avoir les dernières données. A faire quand Somlit sera à jour</wrap>
122
123
===== Mise en production =====
124
125
Voici les étapes pour publier des modifications du code :
126
127
** Voir les modifs dans git **
128
129
<code>git status</code>
130
131
** Ajouter les modifs à git : **
132
133
<code>git add [NOM_FICHIER] ou [NOM_DOSSIER]</code>
134
135
** Enregistrer les modifs **
136
137
<code>git commit -> écrire message -> Ctrl-X -> "O" -> Entrée</code>
138
139
** Envoyer la maj du  code sur le serveur **
140
141
<code>git push</code>
142
143
** Se connecter sur wappsd : **
144
145
<code>ssh froot@wappsd</code>
146
147
** Se connecter en tant que dockeruser **
148
149
<code>su - dockeruser</code>
150
151
** Redémarrer le conteneur **
152
153
<code>docker restart hydroviz</code>
154
155
** [OPTIONNEL] aller dans le répertoire d'Hydroviz **
156
157
<code>cd hydroviz</code>
158
159
160
161
 --- //[[cedric.chauvel@univ-brest.fr|Chauvel Cedric]] 2022-06-27 09:20/02/08 11:33//