Code source wiki de Accueil Hypercerts

Version 26.1 par Matthieu Manginot le 23/07/2020 - 09:55

Afficher les derniers auteurs
1 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.
2
3 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.
4
5 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.
6
7 {{info}}
8 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.
9 {{/info}}
10
11 == Prérequis ==
12
13 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é.
14
15 |=(((
16 Technologie
17 )))|=(((
18 Version
19 )))
20 |(((
21 JDK
22 )))|(((
23 11+
24 )))
25 |(% colspan="1" %)(((
26 SpringBoot
27 )))|(% colspan="1" %)(((
28 2.3
29 )))
30 |(% colspan="1" %)(((
31 Vaadin (Frontend)
32 )))|(% colspan="1" %)(((
33 14
34 )))
35 |(((
36 Tomcat
37 )))|(((
38 9+
39 )))
40 |(% colspan="1" %)(((
41 MariaDB
42 )))|(% colspan="1" %)(((
43 14+
44 )))
45 |(% colspan="1" %)(((
46 Maven
47 )))|(% colspan="1" %)(((
48 3.6+
49 )))
50 |(% colspan="1" %)(((
51 Connection Apogée
52 )))|(% colspan="1" %)(((
53 \\
54 )))
55 |(% colspan="1" %)(((
56 Connection Apogée via WS
57 )))|(% colspan="1" %)(((
58 \\
59 )))
60 |(% colspan="1" %)(((
61 Connection LDAP
62 )))|(% colspan="1" %)(((
63 \\
64 )))
65 |(% colspan="1" %)(((
66 Docker (optionnel)
67 )))|(% colspan="1" %)(((
68 docker-compose 3
69 )))
70
71 == Téléchargement des sources ==
72
73 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"]].
74
75 == Personalisation d'Hypercerts ==
76
77 === **Initialisation de la base** ===
78
79 La base de données MariaDB/MySQL s'initialise avec la commande Flyway suivante :
80
81 {{code language="bash" theme="Eclipse"}}
82 mvn -Dflyway.configFiles=flyway.properties flyway:migrate
83 {{/code}}
84
85 Le fichier flyway.properties doit être créé à partir du fichier exemple flyway-sample.properties. Il contient les properties standard à Flyway.
86
87 {{code language="bash" theme="Eclipse" linenumbers="true" collapse="true"}}
88 # Flyway
89 # ConfigFiles : https://flywaydb.org/documentation/configfiles
90 # mvn -Dflyway.configFiles=xxx.properties flyway:migrate
91 flyway.url=jdbc:mariadb://localhost/hypercerts?serverTimezone=Europe/Paris
92 flyway.schemas=hypercerts
93 flyway.user=XXX
94 flyway.password=
95 # Emplacement des fichiers sql de migration
96 flyway.locations=classpath:db/migration
97 # baselineOnMigrate
98 flyway.baselineOnMigrate=false
99 {{/code}}
100
101 Au besoin, les fichiers sql de migration peuvent être trouvés sous //src/main/resources/db/migration//.
102
103 === Configuration l'application ===
104
105 Créer et compléter un fichier **application.yaml** à la racine du projet sur le modèle de **application-sample.yaml**
106
107 === **Éléments de configuration important ** ===
108
109 ==== Property //app.production// ====
110
111 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.
112
113 En étant à false, cette property autorise également l'interception de tout les mails applicatifs.
114
115 ==== **Envoi de mail** ====
116
117 (% 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é :__
118
119 * d'utiliser un mail catcher ([[https:~~/~~/mailcatcher.me/>>url:https://mailcatcher.me/||shape="rect"]]) en remplacement de votre smtp
120 * ou de configurer l'application pour intercepter tout les mails applicatifs avec ces valeurs :
121 ** **app.production** à false
122 ** **spring.mail.intercept.active** à true
123 ** et **spring.mail.intercept.mails** contenant une ou plusieurs adresses de réception des mails
124
125 ==== WebServices Apogée ====
126
127 {{status colour="Yellow" title="TODO"/}}
128
129 === Configurer et lancer le projet dans Eclipse ===
130
131 * Importer le projet Maven dans eclipse.
132 * 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'.
133
134 === Customisation des services ===
135
136 Plusieurs services sont personnalisables en fonction de votre environnement.
137
138 Sous //fr.univlorraine.hypercerts.apogee.service.customs// :
139
140 * ApogeeUserServiceCustomExample
141 ** Personnalisation de la récupération des adresses mails des utilisateurs Apogée à partir de l'uid LDAP
142 * BlocageServiceCustomExample
143 ** Personnalisation de la récupération des blocages/interdits à partir d'un code étudiant Apogée
144 * ComposanteServiceCustomExample
145 ** Personnalisation de la récupération :
146 *** de toutes les composantes
147 *** des composantes pour un utilisateur à partir de l'uid LDAP
148 *** du nombre de composantes pour un utilisateur à partir de l'uid LDAP
149
150 {{status colour="Yellow" title="TODO"/}}
151
152 === Customisation de Digiposte ===
153
154 //Documentation à venir.//
155
156 === Tâches Maven ===
157
158 * Lancer l'application (hors d'un IDE) :
159
160 {{code language="bash" theme="Eclipse"}}
161 mvn spring-boot:run
162 {{/code}}
163
164 * Lancer les tests :
165
166 {{code language="bash" theme="Eclipse"}}
167 mvn verify
168 {{/code}}
169
170 * Créer le package pour production :
171
172 {{code language="bash" theme="Eclipse"}}
173 mvn clean package -Pproduction
174 {{/code}}
175
176 === Makefile ===
177
178 Un Makefile est également disponible. A la racine, utilisez `make help` pour obtenir les commandes disponibles.
179
180 == Tests unitaires ==
181
182 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
183
184 {{status colour="Red" title="FONCTIONNEMENT A PRECISER"/}}
185
186 == Mise en service de l'application ==
187
188 \\
189
190 {{section}}
191 {{column width="60%"}}
192 {{recently-updated/}}
193 {{/column}}
194
195 {{column width="5%"}}
196 \\
197 {{/column}}
198
199 {{column width="35%"}}
200 ====== Navigate space ======
201
202 {{locationSearch reference="WebHome"/}}
203
204 {{pagetree/}}
205 {{/column}}
206 {{/section}}