Code source wiki de Accueil Hypercerts

Version 36.1 par Matthieu Manginot le 23/07/2020 - 11:01

Afficher les derniers auteurs
1
2
3 {{toc/}}
4
5 Vous cherchez à délivrer aux étudiants de votre université des attestations de réussite dématérialisées ? Hypercerts vous permettera de générer et envoyer des attestations officielles, numériques, et infalsifiable de façon automatique.
6
7 Ces dernières pourront être envoyées par mail, déposées dans le nuage, et même être certifiées authentiques et intègres grâce à une blockchain dédiée.
8
9 Une fois l'application connectée à Apogée et au LDAP, les gestionnaires de composantes pourront demander la génération et l'envoi des attestations de réussite en un clic.
10
11 {{info}}
12 La version 1.0.x est une première version limitée à l'envoi des attestations par email. Bien que le cœur de l'application soit fonctionnel, les dépôts de documents dans les coffres digisposte et la certification cryptographique sont en cours de dévelopement actif.
13 {{/info}}
14
15 == Prérequis ==
16
17 Hypercerts est une application Java qui se connecte à Apogée et au LDAP. Elle requiert l'utilisation d'une base MariaDB pour son fonctionnement interne. Elle se déploie sur des serveurs comme une application SpringBoot classique. Le WAR pourra être pris en charge par un tomcat et servir les utilisateur•ices via l'URL configuré.
18
19 |=(((
20 Technologie
21 )))|=(((
22 Version
23 )))
24 |(((
25 JDK
26 )))|(((
27 11+
28 )))
29 |(% colspan="1" %)(((
30 SpringBoot
31 )))|(% colspan="1" %)(((
32 2.3
33 )))
34 |(% colspan="1" %)(((
35 Vaadin (Frontend)
36 )))|(% colspan="1" %)(((
37 14
38 )))
39 |(((
40 Tomcat
41 )))|(((
42 9+
43 )))
44 |(% colspan="1" %)(((
45 MariaDB
46 )))|(% colspan="1" %)(((
47 14+
48 )))
49 |(% colspan="1" %)(((
50 Maven
51 )))|(% colspan="1" %)(((
52 3.6+
53 )))
54 |(% colspan="1" %)(((
55 Connection Apogée
56 )))|(% colspan="1" %)(((
57 \\
58 )))
59 |(% colspan="1" %)(((
60 Connection Apogée via WS
61 )))|(% colspan="1" %)(((
62 \\
63 )))
64 |(% colspan="1" %)(((
65 Connection LDAP
66 )))|(% colspan="1" %)(((
67 \\
68 )))
69 |(% colspan="1" %)(((
70 Docker (optionnel)
71 )))|(% colspan="1" %)(((
72 docker-compose 3
73 )))
74
75 == Téléchargement des sources ==
76
77 Provisoirement, les sources de l'application peuvent être téléchargées à [[cet endroit>>url:http://download-sig.univ-lorraine.fr/home/download-sig/public/hypercerts||shape="rect"]].
78
79 == Installation d'Hypercerts ==
80
81 === **Initialisation de la base** ===
82
83 La base de données MariaDB/MySQL s'initialise avec la commande Flyway suivante :
84
85 {{code language="bash" theme="Eclipse"}}
86 mvn -Dflyway.configFiles=flyway.properties flyway:migrate
87 {{/code}}
88
89 Le fichier flyway.properties doit être créé à partir du fichier exemple flyway-sample.properties. Il contient les properties standard à Flyway.
90
91 {{code language="bash" theme="Eclipse" linenumbers="true" collapse="true"}}
92 # Flyway
93 # ConfigFiles : https://flywaydb.org/documentation/configfiles
94 # mvn -Dflyway.configFiles=xxx.properties flyway:migrate
95 flyway.url=jdbc:mariadb://localhost/hypercerts?serverTimezone=Europe/Paris
96 flyway.schemas=hypercerts
97 flyway.user=XXX
98 flyway.password=
99 # Emplacement des fichiers sql de migration
100 flyway.locations=classpath:db/migration
101 # baselineOnMigrate
102 flyway.baselineOnMigrate=false
103 {{/code}}
104
105 Au besoin, les fichiers sql de migration peuvent être trouvés sous //src/main/resources/db/migration//.
106
107 Pour remettre à zéro la base, lancer le script //src/main/resources/db/reset/reset.sql //puis exécuter à nouveau Flyway//.//
108
109 === Configuration l'application ===
110
111 Créer et compléter un fichier **application.yaml** à la racine du projet sur le modèle de **application-sample.yaml**
112
113 Des indications sont présents dans le fichier pour aider à sa configuration.
114
115 === **Éléments de configuration important ** ===
116
117 ==== Property (% style="letter-spacing: -0.003em;" %)//app.production//(%%) ====
118
119 Pour les tests, mettre **app.production** à false pour obtenir une année supplémentaire (N-2) pour la génération, ainsi des diplômes avec résultats seront plus facilement trouvables.
120
121 En étant à false, cette property autorise également l'interception de tout les mails applicatifs.
122
123 ==== **Envoi de mail** ====
124
125 (% style="color: rgb(0,51,102);" %)__**Sur votre environnement de test/développement**, pour empêcher l'envoi de mails de test en réel, il est conseillé :__
126
127 * d'utiliser un mail catcher ([[https:~~/~~/mailcatcher.me/>>url:https://mailcatcher.me/||shape="rect"]]) en remplacement de votre smtp
128 * ou de configurer l'application pour intercepter tout les mails applicatifs avec ces valeurs :
129 ** **app.production** à false
130 ** **spring.mail.intercept.active** à true
131 ** et **spring.mail.intercept.mails** contenant une ou plusieurs adresses de réception des mails
132
133 Enfin, la property **app.mails** sert à définir une ou plusieurs adresses permettant de recevoir les mails applicatifs. ⚠ Aujourd'hui, dans cette version tout les envois sont en copie de cette property. Elle peut être laissé vide.
134
135 ==== WebServices Apogée ====
136
137 Les WebServices Apogée sont appelés par l'intermédiaire d'une librairie UL.
138
139 Les properties différent du classique configUrlServices.properties de l'AMUE.
140
141 Des headers peuvent être ajoutés en paramètre de chaque WebService.
142
143 Exemple :
144
145 {{code language="bash" theme="Eclipse" linenumbers="true" collapse="true"}}
146 ws:
147 apogee:
148 administratif:
149 url: https://api.univ.fr/apo/amue_apo_administratif
150 headers:
151 # header1: value1
152 # header2: value2
153 username: xxxx
154 password: xxxx
155 {{/code}}
156
157 === Configurer et lancer le projet dans Eclipse ===
158
159 * Importer le projet Maven dans eclipse.
160 * Lorsque la configuration est terminée, démarrer l'application en faisant un clic droit sur {{code language="none"}}fr.univlorraine.hypercerts.Application.java{{/code}} et en choisissant 'Run As / Java Application'.
161
162 === Customisation des services ===
163
164 Plusieurs services sont personnalisables en fonction de votre environnement.
165
166 Sous //fr.univlorraine.hypercerts.apogee.service.customs// :
167
168 * ApogeeUserServiceCustomExample
169 ** Personnalisation de la récupération des adresses mails des utilisateurs Apogée à partir de l'uid LDAP
170 * BlocageServiceCustomExample
171 ** Personnalisation de la récupération des blocages/interdits à partir d'un code étudiant Apogée
172 * ComposanteServiceCustomExample
173 ** Personnalisation de la récupération :
174 *** de toutes les composantes
175 *** des composantes pour un utilisateur à partir de l'uid LDAP
176 *** du nombre de composantes pour un utilisateur à partir de l'uid LDAP
177
178 {{status colour="Yellow" title="TODO"/}}
179
180 === Customisation de Digiposte ===
181
182 //Documentation à venir.//
183
184 === Tâches Maven ===
185
186 * Lancer l'application (hors d'un IDE) :
187
188 {{code language="bash" theme="Eclipse"}}
189 mvn spring-boot:run
190 {{/code}}
191
192 * Lancer les tests :
193
194 {{code language="bash" theme="Eclipse"}}
195 mvn verify
196 {{/code}}
197
198 * Créer le package pour production :
199
200 {{code language="bash" theme="Eclipse"}}
201 mvn clean package -Pproduction
202 {{/code}}
203
204 === Makefile ===
205
206 Un Makefile est également disponible. A la racine, utilisez `make help` pour obtenir les commandes disponibles.
207
208 == Tests unitaires ==
209
210 Pour s'assurez que les résultats d'admission de vos étudiants soient bien correct, et afin d'éviter les faux positifs (donc envoyer une attestation de réussite à un•e étudiant•e non reçu•e aux examens), vous pouvez ajouter vos jeux de données
211
212 {{status colour="Red" title="FONCTIONNEMENT A PRECISER"/}}
213
214 == Utilisation d'Hypercerts ==
215
216 |=(((
217 Vue
218 )))|=(((
219 Utilisation
220 )))
221 |(((
222 (% class="content-wrapper" %)
223 (((
224 [[image:attach:1-Accueil.png||height="250"]]
225 )))
226 )))|(((
227 (% class="content-wrapper" %)
228 (((
229 En tant que gestionnaire de scolarité, ou super admins de l'application, rendez vous sur l'application.
230
231 Une fois le CAS passé, vous atteignez la page d'accueil de l'application. Vous y retrouvez les composantes pou
232
233 \\
234 )))
235 )))
236 |(((
237 (% class="content-wrapper" %)
238 (((
239 [[image:attach:2-Génération.png||height="250"]]
240 )))
241 )))|(((
242 \\
243 )))
244 |(((
245 (% class="content-wrapper" %)
246 (((
247 [[image:attach:3-diplomes.png||height="250"]]
248 )))
249 )))|(((
250 \\
251 )))
252 |(((
253 (% class="content-wrapper" %)
254 (((
255 [[image:attach:3-2.png||height="250"]]
256 )))
257 )))|(((
258 \\
259 )))
260 |(% colspan="1" %)(((
261 (% class="content-wrapper" %)
262 (((
263 \\
264 )))
265 )))|(% colspan="1" %)(((
266 \\
267 )))
268 |(% colspan="1" %)(((
269 \\
270 )))|(% colspan="1" %)(((
271 (% class="content-wrapper" %)
272 (((
273 \\
274 )))
275 )))
276
277 \\
278
279 \\
280
281 {{section}}
282 {{column width="60%"}}
283 {{recently-updated/}}
284 {{/column}}
285
286 {{column width="5%"}}
287 \\
288 {{/column}}
289
290 {{column width="35%"}}
291 ====== Navigate space ======
292
293 {{locationSearch reference="WebHome"/}}
294
295 {{pagetree/}}
296 {{/column}}
297 {{/section}}