Code source wiki de Accueil Hypercerts

Version 35.1 par Matthieu Manginot le 23/07/2020 - 10:52

Masquer les derniers auteurs
Matthieu Manginot 28.1 1
2
3 {{toc/}}
4
dufour18 22.1 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.
Benjamin Seclier 1.1 6
dufour18 4.1 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.
Benjamin Seclier 1.1 8
dufour18 4.1 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
dufour18 3.1 11 {{info}}
dufour18 24.1 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.
dufour18 3.1 13 {{/info}}
Benjamin Seclier 1.1 14
Matthieu Manginot 7.1 15 == Prérequis ==
dufour18 3.1 16
dufour18 5.1 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é.
dufour18 3.1 18
dufour18 2.1 19 |=(((
dufour18 3.1 20 Technologie
dufour18 2.1 21 )))|=(((
dufour18 3.1 22 Version
dufour18 2.1 23 )))
24 |(((
dufour18 3.1 25 JDK
dufour18 2.1 26 )))|(((
dufour18 3.1 27 11+
dufour18 2.1 28 )))
dufour18 3.1 29 |(% colspan="1" %)(((
30 SpringBoot
31 )))|(% colspan="1" %)(((
32 2.3
33 )))
34 |(% colspan="1" %)(((
35 Vaadin (Frontend)
36 )))|(% colspan="1" %)(((
37 14
38 )))
dufour18 2.1 39 |(((
dufour18 3.1 40 Tomcat
dufour18 2.1 41 )))|(((
dufour18 3.1 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" %)(((
dufour18 2.1 57 \\
58 )))
dufour18 3.1 59 |(% colspan="1" %)(((
60 Connection Apogée via WS
61 )))|(% colspan="1" %)(((
dufour18 2.1 62 \\
dufour18 3.1 63 )))
64 |(% colspan="1" %)(((
65 Connection LDAP
66 )))|(% colspan="1" %)(((
dufour18 2.1 67 \\
68 )))
dufour18 3.1 69 |(% colspan="1" %)(((
70 Docker (optionnel)
71 )))|(% colspan="1" %)(((
72 docker-compose 3
73 )))
Benjamin Seclier 1.1 74
dufour18 4.1 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
Matthieu Manginot 27.1 79 == Installation d'Hypercerts ==
dufour18 2.1 80
Matthieu Manginot 26.1 81 === **Initialisation de la base** ===
dufour18 4.1 82
Matthieu Manginot 25.1 83 La base de données MariaDB/MySQL s'initialise avec la commande Flyway suivante :
Matthieu Manginot 23.1 84
Matthieu Manginot 25.1 85 {{code language="bash" theme="Eclipse"}}
86 mvn -Dflyway.configFiles=flyway.properties flyway:migrate
87 {{/code}}
Matthieu Manginot 19.1 88
Matthieu Manginot 25.1 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
Matthieu Manginot 26.1 105 Au besoin, les fichiers sql de migration peuvent être trouvés sous //src/main/resources/db/migration//.
Matthieu Manginot 25.1 106
Matthieu Manginot 33.1 107 Pour remettre à zéro la base, lancer le script //src/main/resources/db/reset/reset.sql //puis exécuter à nouveau Flyway//.//
108
Matthieu Manginot 26.1 109 === Configuration l'application ===
Matthieu Manginot 25.1 110
Matthieu Manginot 26.1 111 Créer et compléter un fichier **application.yaml** à la racine du projet sur le modèle de **application-sample.yaml**
112
Matthieu Manginot 29.1 113 Des indications sont présents dans le fichier pour aider à sa configuration.
114
Matthieu Manginot 26.1 115 === **Éléments de configuration important ** ===
116
Matthieu Manginot 29.1 117 ==== Property (% style="letter-spacing: -0.003em;" %)//app.production//(%%) ====
Matthieu Manginot 26.1 118
Matthieu Manginot 19.1 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
Matthieu Manginot 15.1 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é :__
Matthieu Manginot 11.1 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
Matthieu Manginot 35.1 133 Enfin, la property **app.mails** sert à définir une ou plusieurs adresses permettant de recevoir les mails applicatifs. ⚠ Aujourd'hui tout les envois sont en copie de cette property. Elle peut être laissé vide.
Matthieu Manginot 31.1 134
Matthieu Manginot 20.1 135 ==== WebServices Apogée ====
136
Matthieu Manginot 21.1 137 {{status colour="Yellow" title="TODO"/}}
Matthieu Manginot 20.1 138
Matthieu Manginot 12.1 139 === Configurer et lancer le projet dans Eclipse ===
140
141 * Importer le projet Maven dans eclipse.
Matthieu Manginot 19.1 142 * 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'.
Matthieu Manginot 12.1 143
Matthieu Manginot 14.1 144 === Customisation des services ===
145
Matthieu Manginot 18.1 146 Plusieurs services sont personnalisables en fonction de votre environnement.
Matthieu Manginot 14.1 147
Matthieu Manginot 25.1 148 Sous //fr.univlorraine.hypercerts.apogee.service.customs// :
Matthieu Manginot 16.1 149
Matthieu Manginot 17.1 150 * ApogeeUserServiceCustomExample
Matthieu Manginot 18.1 151 ** Personnalisation de la récupération des adresses mails des utilisateurs Apogée à partir de l'uid LDAP
Matthieu Manginot 17.1 152 * BlocageServiceCustomExample
Matthieu Manginot 18.1 153 ** Personnalisation de la récupération des blocages/interdits à partir d'un code étudiant Apogée
Matthieu Manginot 17.1 154 * ComposanteServiceCustomExample
Matthieu Manginot 18.1 155 ** Personnalisation de la récupération :
156 *** de toutes les composantes
157 *** des composantes pour un utilisateur à partir de l'uid LDAP
158 *** du nombre de composantes pour un utilisateur à partir de l'uid LDAP
Matthieu Manginot 16.1 159
Matthieu Manginot 21.1 160 {{status colour="Yellow" title="TODO"/}}
161
Matthieu Manginot 17.1 162 === Customisation de Digiposte ===
163
164 //Documentation à venir.//
165
Matthieu Manginot 12.1 166 === Tâches Maven ===
167
168 * Lancer l'application (hors d'un IDE) :
169
170 {{code language="bash" theme="Eclipse"}}
171 mvn spring-boot:run
172 {{/code}}
173
174 * Lancer les tests :
175
176 {{code language="bash" theme="Eclipse"}}
177 mvn verify
178 {{/code}}
179
180 * Créer le package pour production :
181
182 {{code language="bash" theme="Eclipse"}}
183 mvn clean package -Pproduction
184 {{/code}}
185
Matthieu Manginot 13.1 186 === Makefile ===
187
188 Un Makefile est également disponible. A la racine, utilisez `make help` pour obtenir les commandes disponibles.
189
Matthieu Manginot 14.1 190 == Tests unitaires ==
dufour18 4.1 191
Matthieu Manginot 13.1 192 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
dufour18 4.1 193
Matthieu Manginot 14.1 194 {{status colour="Red" title="FONCTIONNEMENT A PRECISER"/}}
195
Matthieu Manginot 30.1 196 == Utilisation d'Hypercerts ==
197
Matthieu Manginot 34.1 198 |=(((
199 Vue
200 )))|=(((
201 Utilisation
202 )))
203 |(((
204 (% class="content-wrapper" %)
205 (((
206 [[image:attach:1-Accueil.png||thumbnail="true" height="150"]]
207 )))
208 )))|(((
209 En tant que gestionnaire de scolarité, ou super admins de l'application, rendez vous sur l'application. Une fois le CAS passé, vous atteignez la page d'accueil de l'application.
Matthieu Manginot 33.1 210
Matthieu Manginot 34.1 211 \\
212 )))
213 |(((
214 \\
215 )))|(((
216 \\
217 )))
218 |(((
219 \\
220 )))|(((
221 \\
222 )))
223 |(((
224 \\
225 )))|(((
226 \\
227 )))
Matthieu Manginot 30.1 228
dufour18 4.1 229 \\
230
Matthieu Manginot 34.1 231 \\
232
Benjamin Seclier 1.1 233 {{section}}
234 {{column width="60%"}}
235 {{recently-updated/}}
236 {{/column}}
237
dufour18 2.1 238 {{column width="5%"}}
239 \\
240 {{/column}}
Benjamin Seclier 1.1 241
242 {{column width="35%"}}
243 ====== Navigate space ======
244
245 {{locationSearch reference="WebHome"/}}
246
247 {{pagetree/}}
248 {{/column}}
249 {{/section}}