Code source wiki de Accueil Hypercerts

Version 25.1 par Matthieu Manginot le 23/07/2020 - 09:54

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 === Configuration l'application ===
78
79 Créer et compléter un fichier **application.yaml** à la racine du projet sur le modèle de **application-sample.yaml**
80
81 === **Éléments de configuration important ** ===
82
83 ==== **Initialisation de la base** ====
84
85 La base de données MariaDB/MySQL s'initialise avec la commande Flyway suivante :
86
87 {{code language="bash" theme="Eclipse"}}
88 mvn -Dflyway.configFiles=flyway.properties flyway:migrate
89 {{/code}}
90
91 Le fichier flyway.properties doit être créé à partir du fichier exemple flyway-sample.properties. Il contient les properties standard à Flyway.
92
93 {{code language="bash" theme="Eclipse" linenumbers="true" collapse="true"}}
94 # Flyway
95 # ConfigFiles : https://flywaydb.org/documentation/configfiles
96 # mvn -Dflyway.configFiles=xxx.properties flyway:migrate
97 flyway.url=jdbc:mariadb://localhost/hypercerts?serverTimezone=Europe/Paris
98 flyway.schemas=hypercerts
99 flyway.user=XXX
100 flyway.password=
101 # Emplacement des fichiers sql de migration
102 flyway.locations=classpath:db/migration
103 # baselineOnMigrate
104 flyway.baselineOnMigrate=false
105 {{/code}}
106
107 Au besoin, les fichiers sql de migration peuvent être trouvés sous //src/main/resources/db/migration//.
108
109 ====
110 Property //app.production// ====
111
112 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.
113
114 En étant à false, cette property autorise également l'interception de tout les mails applicatifs.
115
116 ==== **Envoi de mail** ====
117
118 (% 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é :__
119
120 * d'utiliser un mail catcher ([[https:~~/~~/mailcatcher.me/>>url:https://mailcatcher.me/||shape="rect"]]) en remplacement de votre smtp
121 * ou de configurer l'application pour intercepter tout les mails applicatifs avec ces valeurs :
122 ** **app.production** à false
123 ** **spring.mail.intercept.active** à true
124 ** et **spring.mail.intercept.mails** contenant une ou plusieurs adresses de réception des mails
125
126 ==== WebServices Apogée ====
127
128 {{status colour="Yellow" title="TODO"/}}
129
130 === Configurer et lancer le projet dans Eclipse ===
131
132 * Importer le projet Maven dans eclipse.
133 * 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'.
134
135 === Customisation des services ===
136
137 Plusieurs services sont personnalisables en fonction de votre environnement.
138
139 Sous //fr.univlorraine.hypercerts.apogee.service.customs// :
140
141 * ApogeeUserServiceCustomExample
142 ** Personnalisation de la récupération des adresses mails des utilisateurs Apogée à partir de l'uid LDAP
143 * BlocageServiceCustomExample
144 ** Personnalisation de la récupération des blocages/interdits à partir d'un code étudiant Apogée
145 * ComposanteServiceCustomExample
146 ** Personnalisation de la récupération :
147 *** de toutes les composantes
148 *** des composantes pour un utilisateur à partir de l'uid LDAP
149 *** du nombre de composantes pour un utilisateur à partir de l'uid LDAP
150
151 {{status colour="Yellow" title="TODO"/}}
152
153 === Customisation de Digiposte ===
154
155 //Documentation à venir.//
156
157 === Tâches Maven ===
158
159 * Lancer l'application (hors d'un IDE) :
160
161 {{code language="bash" theme="Eclipse"}}
162 mvn spring-boot:run
163 {{/code}}
164
165 * Lancer les tests :
166
167 {{code language="bash" theme="Eclipse"}}
168 mvn verify
169 {{/code}}
170
171 * Créer le package pour production :
172
173 {{code language="bash" theme="Eclipse"}}
174 mvn clean package -Pproduction
175 {{/code}}
176
177 === Makefile ===
178
179 Un Makefile est également disponible. A la racine, utilisez `make help` pour obtenir les commandes disponibles.
180
181 == Tests unitaires ==
182
183 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
184
185 {{status colour="Red" title="FONCTIONNEMENT A PRECISER"/}}
186
187 == Mise en service de l'application ==
188
189 \\
190
191 {{section}}
192 {{column width="60%"}}
193 {{recently-updated/}}
194 {{/column}}
195
196 {{column width="5%"}}
197 \\
198 {{/column}}
199
200 {{column width="35%"}}
201 ====== Navigate space ======
202
203 {{locationSearch reference="WebHome"/}}
204
205 {{pagetree/}}
206 {{/column}}
207 {{/section}}