Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
MEMOIRE
Présenté à
En vue de l’obtention
Par
Ahmed LEHYANI
Maman, Papa,
Et toute la famille,
i
Remerciements
C'est avec un grand plaisir que nous réservons cette page en signe de gratitude et de
reconnaissance à tous ceux qui ont assisté ce travail.
Nous tenons particulièrement à remercier nos encadrants à l’Ecole Nationale d’Ingénieurs
de Sfax, M. Riadh BEN HALIMA et Mme Manel ELEUCHI, pour leurs disponibilités, leurs patiences,
leurs encouragements, leurs encadrements de qualité et pour tous leurs conseils judicieux tout au
long de notre projet.
Nos vifs remerciements accompagnés de toute notre gratitude s’adressent également à toute
les équipes de DK Soft et Digital Click pour leur accueil chaleureux, pour leurs aides et précieux
conseils, pour le temps alloué et les efforts fournis à nous guider et à nous intégrer dans
l’environnement de travail.
Enfin, nous exprimons notre grande reconnaissance à tous nos enseignants pour la formation
de qualité qu’ils nous ont prodiguée tout au long de notre cursus universitaire au sein de l’Ecole
Nationale d’Ingénieurs de Sfax.
ii
Table des matières
1.6. Conclusion...................................................................................................................... 13
2.4. Conclusion...................................................................................................................... 24
iii
Chapitre 3 : Développement de la version 1 ............................................................................... 25
3.2.5. Réalisation............................................................................................................... 33
3.3.5. Réalisation............................................................................................................... 40
3.4. Conclusion...................................................................................................................... 41
4.2.2. Réalisation............................................................................................................... 48
iv
4.3.2. Analyse des besoins ................................................................................................ 53
4.3.2. Réalisation............................................................................................................... 55
4.4. Conclusion...................................................................................................................... 58
v
Table des figures
vi
Figure 30: Diagramme d'activités ................................................................................................. 47
Figure 31: Interface graphique de la page d'accueil de 9AWINY ................................................ 48
Figure 32: Pop-up de choix de consultation ................................................................................. 48
Figure 33: Formulaire de données ................................................................................................ 49
Figure 34: Ajout des champs spécifiques pour les étudiants ........................................................ 49
Figure 35: Exemple de question d'émotion................................................................................... 50
Figure 36: Exemple de question de la consultation 1 ................................................................... 50
Figure 37: Interface de fin de la 1ère consultation ....................................................................... 51
Figure 38: Interface d'accès entre les consultations ...................................................................... 51
Figure 39: Aperçu sur la version mobile....................................................................................... 52
Figure 40: Diagramme de cas d'utilisation du sprint 4 ................................................................. 53
Figure 41: Tableau de bord synthétique........................................................................................ 55
Figure 42: Carte de résiliences ...................................................................................................... 56
Figure 43: Diagramme de résilience des universités .................................................................... 56
vii
Liste des tableaux
Tableau 1: Comparaison entre les solutions existantes................................................................... 7
Tableau 2: Comparaison entre les méthodologies agiles [4] ........................................................ 11
Tableau 3: Scénario nominal de la partie citoyen ......................................................................... 27
Tableau 4: Backlog sprint 1 .......................................................................................................... 28
Tableau 5: Scénario nominal de la partie administrateur.............................................................. 37
Tableau 6: Backlog sprint 2 .......................................................................................................... 38
Tableau 7: Scénario nominal de la partie citoyen ......................................................................... 44
Tableau 8: Backlog du sprint 3 ..................................................................................................... 44
Tableau 9: Scénario nominal de la partie administrateur.............................................................. 54
Tableau 10: Backlog sprint 4 ........................................................................................................ 54
Tableau 11: Comparaison entre les solutions existantes et notre application ............................... 57
viii
Acronymes
ENIS Ecole Nationale d'Ingénieurs de Sfax
PDF Portable Document Format
REST REpresentational State Transfer
IDE Integrated Development Environment
HTML HyperText Markup Language
CSS Cascading Style Sheets
MVC Model View Controller
XML Extensible Markup Langage
Java EE Java Entreprise Edition
GPL General Public License
JPA Java Persistence API
ORM Object-Relational Mapping
DTO Data Transfer Object
DAO Data Access Object
JWT JSON Web Token
UML Unified Modeling Language
URL Uniform Resource Locator
WAR Web application Archive
ix
Introduction générale
Les systèmes d’informations jouent un rôle primordial dans la société du fait qu’ils
facilitent la gestion et l’automatisation des tâches gênantes. Ceci est le cas pour les instituts
d'enquêtes et sondage dans le domaine des études psychologiques. L’une des tâches les plus
pénibles pour ces instituts est les sondages qu’il faut faire. Cette fonctionnalité exige en général
beaucoup de ressources humaines et matérielles, et entraîne un énorme gaspillage de temps en
cas de calcul manuel. Par conséquent, elle engendre des retards et/ou des risques indésirables. Et
plus de ça, parfois on a besoin des résultats très rapidement pour interagir en même temps et
revoir les résultats et c’est le cas du projet 9AWINY.
Pour ce faire, nous avons rejoint l’équipe Java de la société DK Soft pour la conception et
le développement d’une application de diagnostic, de conseil, et d’adaptation face aux situations
difficiles. Le but de ce projet est d’automatiser les enquêtes, donner des recommandations aux
citoyens, analyser les résultats etc.
Le mot 9AWINY est un mot du dialecte tunisien qui veut dire « donne-moi la force » ou
« rends-moi plus fort ». Nous avons choisi ce nom en collaboration avec le client, pour que ça
soit près des citoyens. En effet, un tel nom peut les encourager à participer pour bénéficier des
recommandations proposées par les experts.
Cette application était faite à titre bénévole pour le bien de la Tunisie, après une période
très difficile que nous avons pu surmonter avec succès.
Pour présenter ce projet, nous avons réparti notre rapport sur trois chapitres :
• Chapitre 1 : Ce chapitre est consacré à la présentation du cadre et de la méthodologie
de travail de notre projet à savoir Scrum.
• Chapitre 2 : Ce chapitre est dédié à la spécification des différentes architectures
associées à notre application ainsi que les différentes technologies utilisées dans 9AWINY.
• Chapitre 3 : Ce chapitre est consacré à la réalisation des deux premiers sprints relatifs
à la conception et au développement de la première version de l’application en commençant
par la partie citoyen, (enquête), passant par le traitement des données et le calcul des scores et
des indices et terminant par la partie administrateur (présentation des données sous différentes
formes : histogramme, carte, jauge, …).
1
• Chapitre 4 : Ce chapitre est consacré à la réalisation du troisième et quatrième sprints
relatifs à l’amélioration de l’application tels que l’ajout du type étudiant en tant que métier pour
le citoyen et la mise en place de tableaux de bords pour la distribution de la résilience.
Ce rapport sera clôturé par une conclusion qui dresse le bilan des tâches réalisées, et
présente quelques perspectives pour améliorer et étendre ce travail.
2
Chapitre 1 : Cadre et méthodologie de travail
1.1. Introduction
Ce chapitre sert à exposer le cadre général de travail durant ce projet de fin d’études. Nous
entamons cette exposition par une présentation générale de l’entreprise. Puis, nous détaillons l’idée
générale du projet, suivie par le besoin du client, ainsi que les principales fonctions à développer.
Enfin, nous présentons la méthodologie adoptée par l’équipe pour réaliser ce projet.
DKSoft est une filiale de Digital Click qui s’intéresse au développement des applications
web. Elle est composée de plusieurs équipes organisées par technologie à savoir PHP, .NET et
JEE.
3
1.3. Présentation du stage
Notre stage intitulé « Conception et développement d'une application de diagnostic, de
conseil, et d'adaptation face aux situations difficiles » est réalisé dans le contexte du projet de fin
d’étude du cycle d’ingénieur en Informatiques à l’ENIS. Ce projet est effectué dans une filiale de
la société Digital Click, à savoir DK Soft, au sein de l’équipe JEE qui s’intéresse au développement
des applications Web.
Dans le cadre de ce stage, nous avons participé aux différentes étapes de réalisation du projet
en commençant par la conception et en terminant par le test de l'application.
1.4.1.1. Fabulous
Fabulous [1] est une application qui influe sur les comportements des utilisateurs et les aide
à améliorer leurs habitudes sanitaires dans la vie à l’aide d’un questionnaire et des
recommandations à suivre. C’est une application en anglais qui est ouverte à tout le monde et qui
4
n’a pas de partie administrateur. Cette application dispose une version web et une version mobile.
5
permet de collecter des informations auprès des utilisateurs via une enquête ou un quiz
personnalisé. Les informations sont ensuite collectées et automatiquement connectées à une feuille
de calcul. Google Forms inclut plusieurs fonctionnalités : La validation de réponse intelligente, la
recherche dans les menus, le mélange des questions pour un ordre aléatoire, la limitation des
réponses à une fois par personne, etc.
Le tableau 1 illustre une étude comparative qui résume les points communs et les points de
différence entre les différentes applications trouvées.
D’après le tableau 1, chacune des applications présente quelques critères. Toutes les
solutions trouvées sont anonymes et peuvent présenter des recommandations lisibles. Cependant,
aucune ne présente de recommandations audibles et ne fait le suivi du citoyen après une période
de temps. Toutes les applications possèdent une partie où l’administrateur peut s’authentifier et
consulter les résultats des enquêtes, les filtrer et les classer sur un histogramme, à l’exception de
Fabulous qui ne contient pas de côté administrateur.
Pour le côté administrateur, Stop Corona est confidentielle. Elle peut générer une carte
géographique et posséde une interface graphique, tandis que Google Forms ne possède pas de ces
fonctionnalités.
6
Tableau 1: Comparaison entre les solutions existantes
Coté citoyen
UI ✔ ✔ ✘
Recommandation lisible ✔ ✔ ✔
Recommandation audible ✘ ✘ ✘
Anonymat ✔ ✔ ✔
Suivi ✘ ✘ ✘
Coté administrateur
Confidentialité ✔ ✘
Jauge ✘ ✘
Histogramme ✔ ✔
Carte géographique ✔ ✘
Authentification ✔ ✔
UI ✔ ✘
1.4.2. Objectifs
L’objectif principal du projet est de concevoir et développer une application web. En effet,
notre application doit être flexible à toutes améliorations et évolutions et doit être à haut niveau en
termes de qualité du code, de sécurité et de performance.
7
1.4.3. Besoins du client
Prof. Slim MASMOUDI a développé une enquête composée par des psycho-questions
destinée à tous les citoyens âgés de plus de 12 ans. Cette enquête répond selon des critères par des
recommandations spécifiques pour chaque cas et calcule quelques indices servant à faire les
statistiques et les études nécessaires.
Les besoins exprimés par Prof. Slim MASMOUDI sont en général :
➢ Coté citoyen
- Automatiser le processus de l’enquête en développant une application web gratuite
et anonyme appelée 9AWINY permettant au citoyen de faire deux consultations décalées d’une
semaine.
- Après avoir répondu aux questions de la première consultation, 9AWINY répond
d’une manière intelligente par des recommandations de soutien moral et des conseils lisibles et
audibles selon l’état du citoyen. Ce dernier sera invité à revenir dans une semaine pour terminer la
deuxième consultation.
- Si le citoyen revient avant que la semaine se termine, il n’aura pas la main pour
finir la deuxième consultation.
- Si le citoyen revient après une semaine, et finit sa deuxième consultation, il aura
d’autres recommandations de soutien moral et conseils selon l’évolution de son état psychologique
entre les deux consultations.
➢ Coté administrateur (expert / psychologue)
- 9AWINY calcule les scores de chaque citoyen après la première consultation et
après la deuxième consultation et les sauvegarde pour l’administrateur.
- L’expert peut s’authentifier pour consulter :
o Un tableau des scores : contenant tous les scores des sources de résilience
et celles de vulnérabilité ;
o Un tableau des scores individuel : contenant les scores des sources de
résilience et celles de vulnérabilité pour un citoyen précisé par son identifiant dans la base de
données ;
o Un tableau de bord synthétique : contenant pour chaque consultation la
moyenne des scores de résilience, la moyenne des indices de résistance à la réponse et la moyenne
8
des indices de désirabilité sociale. Ce tableau de bord contient aussi la valence positive, la valence
négative et la valence globale ;
o Un tableau de bord individuel : contenant pour chaque consultation un score
de résilience, un indice de résistance à la réponse et un indice de désirabilité sociale. Ce tableau de
bord contient aussi la valence positive, la valence négative et la valence globale pour un citoyen
précisé par son identifiant dans la base de données.
9
1.5.1. Les méthodes agiles
Les méthodes agiles impliquent au maximum le demandeur lors du processus du projet et
permettent une grande réactivité à ses demandes. Elles reposent sur un cycle de développement
itératif, incrémental et adaptatif. De plus elles sont basées sur une approche flexible et offrent une
meilleure visibilité dans la gestion du projet, ce qui permet à l'équipe d'être plus réactive aux
attentes du client. Les membres de l’équipe travaillent en petites phases et équipes sur des mises à
jour spécifiques du produit. Ensuite, chaque mise à jour est testée en fonction des besoins du client,
au lieu de se concentrer sur un seul produit final qui n’est publié qu’à la fin du projet. C’est pour
cela que le produit final d’un projet agile pourrait bien être différent de ce qui avait été initialement
prévu. Les méthodologies agiles pour le développement informatique offrent plusieurs avantages
tels que : l’amélioration de la qualité des produits, la satisfaction du client, la grande motivation
des travailleurs et le travail collaboratif [4]. Toutes ces raisons nous ont poussés vers le choix de
la méthode agile. Parmi les méthodes agiles nous pouvons citer « Scrum », « Kanban », « RAD »,
« XP », etc. Pour notre projet, nous allons opter pour la méthodologie Kanban étant donné que
cette méthodologie facilite la collaboration entre les membres de notre équipe agile.
1
Coach agile de la practice agilité au sein de l'ESN française Umanis qui a publié un benchmark sur les méthodes
agiles
10
Tableau 2: Comparaison entre les méthodologies agiles [4]
11
1.5.3.1. La méthode Scrum
Scrum est une méthode de développement agile orientée projet informatique dont les
ressources sont régulièrement actualisées.
La méthode Scrum tire son nom du monde du rugby, Scrum = mêlée. Le principe de base
étant d'être toujours prêt à réorienter le projet au fil de son avancement.
C'est une approche dynamique et participative de la conduite du projet. La mêlée est une
phase de jeu essentielle au rugby. Elle permet au jeu de repartir sur d'autres bases. La réunion dans
la méthode Scrum relaie la métaphore [5].
12
Après la revue du Sprint, l’équipe de développement ainsi que le Product Owner se
réunissent « Rétrospective de Sprint » afin d’identifier les adaptations susceptibles d’augmenter sa
productivité. Les choses qui fonctionnent, celles qui ne fonctionnent pas ainsi que les améliorations
à apporter, sont identifiées dans cette réunion. Elle s’inscrit dans une démarche d’amélioration
continue. Les idées de chacun sont mises à profit. S’enchaine ensuite la planification du sprint
suivant.
La figure 6 illustre à la fois les différents rôles de Scrum ainsi que le déroulement du
processus.
1.6. Conclusion
Au terme de ce chapitre, nous avons présenté la société à laquelle nous avons effectué notre
projet. Puis, nous avons donné une vue générale sur le besoin du client et les objectifs qu’on doit
atteindre. Enfin, nous avons défini la méthodologie de travail adoptée pour la réalisation de projet
« 9AWINY ». Le chapitre suivant sera consacré à la présentation de l’architecture de travail, et la
définition des exigences fonctionnelles et non fonctionnelles de l’application.
13
Chapitre 2 : Architectures et exigences
2.1. Introduction
Pour répondre au besoin d’automatiser le processus de l’enquête, nous avons recueilli
plusieurs technologies qui nous ont amené à atteindre nos buts.
Dans ce chapitre, nous allons faire la présentation de l’architecture logicielle et des
environnements logiciels. Nous allons, par la suite présenter l’architecture physique de notre
application.
14
2.2.1.2. IDEs
• Eclipse
WebStorm [7] est un IDE pour les langages Web (HTML, CSS et JavaScript),
développé par l'entreprise JetBrains et basé sur la plateforme IntelliJ IDEA.
15
2.2.1.4. SGBD
• MySQL
XAMPP [13] est une distribution Apache entièrement gratuite et facile à installer
contenant MySQL, PHP et Perl. C’est un logiciel qui nous servira pour démarrer le
serveur MySQL qu’on utilise pour gérer notre base de données dans ce projet.
Java [14] est un langage typé et orienté objet. Il est compilé et basé sur une
architecture logicielle très particulière nécessitant une machine virtuelle Java. Il utilise
les notions usuelles de la programmation orientée objet : la notion de classe,
d’encapsulation, d’héritage, d’interface, de virtualité, de généricité. Il est accompagné
d’un ensemble énorme de bibliothèques standard couvrant de très nombreux domaines. Nous
avons utilisé le Java Développement Kit JDK 8.
16
2.2.2.2. Plateforme de développement
• JakartaEE
Spring Boot [16] est un framework qui facilite le développement d'applications fondées sur
Spring. Il propose une approche dogmatique de la configuration, qui permet
d’éviter aux développeurs de redéfinir la même configuration à plusieurs endroits
du code.
• Spring data JPA
17
peut être facilement utilisé dans tout environnement prenant en charge JPA, y compris les
applications Java SE, les serveurs d'applications Java EE.
• Spring Security :
Ngx charts
18
• HTML 5 :
CSS (Cascading Style Sheets /feuilles de styles en cascade) [22], servent à mettre
en forme des documents web, type page HTML ou XML. Par l’intermédiaire de propriétés
d’apparence (couleurs, bordures, polices, etc.) et de placement (largeur, hauteur, côte à
côte, dessus-dessous, etc.), le rendu d’une page web peut être intégralement modifié sans aucun
code supplémentaire dans la page web. Les feuilles de styles ont d’ailleurs pour objectif principal
de dissocier le contenu de la page de son apparence visuelle.
• Bootstrap :
19
• Angular 8 :
Ngx Charts [26] est un framework cartographique pour Angular. Il s'agit de l'un des
frameworks les plus populaires pour le développement d'applications Angular, car il
Ngx charts
facilite tellement le rendu des graphiques.
• Angular Material
Angular Material [27] est une bibliothèque de composants graphiques pour les
développeurs Angular. Les composants Angular Material aident à créer des pages
Web et des applications Web attrayantes, cohérentes et fonctionnelles tout en respectant les
principes de conception Web modernes tels que la portabilité du navigateur et l'indépendance des
appareils.
2.2.2.5. Déploiement
• FileZilla Client
FileZilla Client [28] est une solution FTP gratuite. Le client FileZilla prend en
charge non seulement le FTP, mais également le FTP sur TLS (FTPS) et SFTP. Il s'agit
d'un logiciel open source distribué gratuitement sous les termes de la GNU General
Public License. Ce logiciel nous a servi pour le déploiement de l’application sur le serveur.
20
2.2.2.6. Conception
• UML
Le Langage de Modélisation Unifié (UML) [29], est un langage de modélisation
graphique à base de pictogrammes conçu pour fournir une méthode normalisée pour
visualiser la conception d'un système. Il est couramment utilisé en développement logiciel
et en conception orientée objet.
• Draw.io
Draw.io est un service pour dessiner des diagrammes en ligne. L’outil permet de créer tout
type de diagramme assez facilement et gratuitement.
21
Figure 9: Architecture logicielle
22
Figure 10: Diagramme de paquetages
23
2.3. Architecture physique
La figure 11 présente le schéma de l’architecture physique de l’application. Cette architecture
nous a servis lors du développement. Cependant, pour le déploiement, on élimine le serveur
Angular qui était nécessaire au développement pour compiler Angular en temps-réel.
2.4. Conclusion
Lors de ce chapitre, nous avons détaillé les différents outils dont nous avons eu besoin. Puis,
nous avons enchaîné par l’architecture logicielle. Enfin, nous avons présenté l’architecture
physique de notre application. Nous passons, dans la suite, au développement.
24
Chapitre 3 : Développement de la version 1
3.1. Introduction
Ce chapitre porte sur la présentation de la première version. Il est composé de deux sprints :
• Sprint 1 : conception et le développement de la partie « citoyen » version 1.
• Sprint 2 : conception et le développement de la partie « Administrateur » version 1.
25
Des scores seront calculés et enregistrés dans la base de données après avoir
répondu.
4. Passer les dix questions de la première passation
Cette étape continent dix questions à quatre choix qui s’affiche une par une.
La réponse est obligatoire à toutes ces questions.
D’autres scores vont être calculés et enregistrés dans la base de données après avoir
répondu.
5. Afficher les recommandations
Suite aux réponses à ces questions et des indices spécifiques vont être calculé des
recommandations seront affichés.
6. Passer les dix questions de la deuxième passation après au moins une semaine
Cette partie contient dix questions comme la première passation.
Le citoyen ne peut accéder à cette partie qu’après au moins une semaine, et il ne
peut pas refaire le test à nouveau.
7. Afficher les recommandations
Suite aux réponses aux deux passations et aux indices spécifiques qui vont être
calculés, des recommandations seront affichées.
26
Figure 12: Diagramme de cas d'utilisation du sprint 1
Acteur Citoyen
27
• Lire les recommandations
• Revisiter l'application après une semaine
• Choisir la langue
• Passer la deuxième passation
• Lire les recommandations
3.2.3. Backlog
Le tableau 4 représente le backlog de la partie citoyen.
Tableau 4: Backlog sprint 1
Durée Ma
Cas d’utilisation Description
(Heure) participation
100 %
Réunion du début de sprint 2
Insertion des choix dans la base de 100%
4
données.
0%
Interface graphique. 16
Remplir le
formulaire 100%
Ajout des délégations. 12
100%
Test et correction de bugs. 8
Ajout des questions à la base de 100%
2
données
Ajout des dix choix à la base de 100%
Répondre aux 6
données.
questions
0%
d’émotions Interface graphique. 16
50%
Test et correction de bugs. 8
Ajout des questions à la base de 100%
2
données.
100%
Ajout des choix à la base de données. 8
Passer la première 0%
Interface graphique. 16
consultation
Envoi des réponses à la base de 100%
4
données.
Sauvegarder l’uiid et la date dans le 12.5%
32
navigateur (cookies)
28
50%
Test et correction de bugs. 8
Ajout des recommandations à la base 0%
6
de données.
Importer les recommandations selon 100%
8
le cas.
100%
Afficher les recommandations. 4
Lire et les
recommandations 0%
Interface graphique 16
Générer un identifiant unique pour 100%
2
chacun.
100%
Test et correction de bugs. 8
Ajout des questions à la base de 0%
2
données.
100%
Ajout des choix à la base de données. 8
Passer la deuxième 0%
Interface graphique. 16
consultation
Envoi des réponses à la base de 100%
10
données.
50%
Test et correction de bugs. 16
100%
Réunion de fin de sprint 2
29
Figure 13: Diagramme des classes persistantes
30
3.2.4.1. Diagramme d’activités
La figure 14 représente le diagramme d’activités réalisé lors du premier sprint de notre application.
31
Figure 15: Diagramme de séquences
32
3.2.5. Réalisation
Cette partie porte sur le développement des différentes interfaces de la partie « citoyen »
et « administrateur » de l’application, ainsi que son déploiement sur le serveur.
Quand l’utilisateur accède à l’URL de notre application 9awiny.rnu.tn/ une page
d’accueil s’affiche comme l’indique la figure 16. Cette page contient une présentation brève
de l’application en français et en dialecte tunisien. Cette page donne la main au client pour
choisir la langue préférée avec laquelle il fera sa consultation.
33
Figure 17: Interface graphique du Formulaire de données
Après avoir soumis le formulaire, le citoyen sera redirigé vers une enquête de 16
questions dont les six premières sont des questions d’émotions (voir figure18) où le citoyen
doit répondre par une valeur de 1 à 10 selon son sentiment de l’émotion citée. Tandis que le
reste des questions concerne la première consultation (voir figure 19) où le citoyen répondra
par son degré d’accord avec ce qui lui a été demandé.
Après avoir fini, le citoyen aura l’interface de la figure 19 contenant une série de
recommandations lisibles qui l’aideront à améliorer ses habitudes au sein de la semaine qui
suit, ainsi qu’un identifiant généré automatiquement enregistré dans un cookie du navigateur,
qui lui permettra de passer la deuxième consultation dans une semaine.
34
Figure 19: Interface de fin de la 1ère consultation
Si le citoyen se connecte avant la fin d’une semaine, il aura le message inscrit sur la figure
20 et ne pourra passer à la deuxième consultation qu’après 7 jours.
En accédant après 7 jours, le citoyen aura la main pour faire sa deuxième consultation et
pourra avoir de nouvelles recommandations selon l’évolution de son état psychologique et de
sa résilience.
Pour assurer une meilleure portabilité de l’application, nous avons opté pour une version
responsive qui peut s’afficher correctement sur les navigateurs des différentes dimensions
d’écrans (smartphone, tablette, PC, …). La figure 21 illustre un aperçu sur la version mobile.
35
3.3. Sprint 2 : Conception et le développement
de la partie « administrateur »
Ce sprint porte sur la présentation de la première version de la partie « administrateur ».
Ce dernier se concentre sur la conception et le développement de la partie « administrateur »
de l'application. Tout d’abord, nous introduisons les différentes tâches sélectionnées pour ce
sprint. Ensuite, nous détaillons la conception de ce processus. Puis, nous présentons la partie
réalisation de notre travail. Enfin, nous terminons par l’exécution d’une pile de tests pour l’un
des paramétrages ainsi que la validation des tâches réalisées de la part du client.
36
Figure 22: Diagramme de cas d'utilisation du sprint 2
Acteur Administrateur
37
• Consulter le tableau de bord synthétique ou individuel
• Filtrer l’ensemble des indices calculés selon les données
personnelles de chaque catégorie
3.3.3. Backlog
Le tableau 6 représente le backlog de la partie administrateur.
Tableau 6: Backlog sprint 2
Interface graphique 16 0%
38
Figure 23: Diagramme des classes persistantes
39
3.3.5. Réalisation
Cette partie porte sur le développement des différentes interfaces « administrateur » de
l’application, ainsi que le déploiement de la première version sur le serveur.
L’administrateur peut accéder à sa partie via l’URL http://9awiny.rnu.tn/#/admin/ et doit se
connecter en fournissant son nom d’utilisateur et son mot de passe via l’interface de la figure 24.
40
L’administrateur peut consulter d’autres scores (figure 26 et figure 27) concernant les
sources de résilience et celles de vulnérabilité et les filtrer.
3.4. Conclusion
Au cours de ce chapitre, nous avons présenté les objectifs à atteindre, puis nous avons
enchaîné par une analyse des besoins, suivie par la conception UML et nous avons fini par la
réalisation de la première version.
41
Chapitre 4 : Développement de la version 2
4.1. Introduction
Ce chapitre porte sur la présentation de la deuxième version. Ce dernier est composé de deux
sprints :
• Sprint 3 : Amélioration de la partie « citoyen ».
• Sprint 4 : Amélioration de la partie « Administrateur ».
42
4.2.2. Analyse des besoins
Pour bien comprendre le but de ce sprint, nous détaillons dans cette partie le scénario
d’exécution de chaque fonctionnalité.
La Figure 28 représente le diagramme de cas d’utilisation pour le passage d’un citoyen. La
couleur bleue représente le sprint 1, la couleur verte représente le sprint 2, la couleur rouge
représente le sprint 3.
43
Tableau 7: Scénario nominal de la partie citoyen
Acteur Citoyen
4.2.3. Backlog
Le tableau 8 représente le backlog de la partie citoyen.
44
Test et correction de bugs. 8 50%
45
Figure 29: Diagramme des classes persistantes
46
4.2.1.1. Diagramme d’activités
La figure 30 représente le diagramme d’activités réalisé lors du troisième sprint de notre application.
La couleur bleue représente le sprint 1 et la couleur rouge représente le sprint 3.
47
4.2.2. Réalisation
Cette partie porte sur l’amélioration des différentes interfaces de la partie « citoyen » de
l’application.
Quand l’utilisateur accède à l’URL de notre application 9awiny.rnu.tn/ une page
d’accueil s’affiche comme l’indique la figure 31. Cette page contient une présentation brève
de l’application en français et en dialecte tunisien. Cette page donne la main au client pour
choisir la langue préférée avec laquelle il fera sa consultation.
48
son premier passage par 9AWINY, le citoyen doit choisir l’option oui pour dire que c’est son
premier passage par l’application.
49
plus seront affichés : « Université » et « Etablissement », affichés dans la figure 34, qu’il doit
remplir. Ceci a été ajouté lors du deuxième sprint sous la demande du ministère l'enseignement
supérieur et de la recherche scientifique pour des raisons statistiques.
Après avoir soumis le formulaire, le citoyen sera redirigé vers une enquête de 16
questions dont les six premières sont des questions d’émotions (voir figure 35) où le citoyen
doit répondre par une valeur de 1 à 10 selon son sentiment de l’émotion citée. Tandis que le
reste des questions concerne la première consultation (voir figure 36) où le citoyen répondra
par son degré d’accord avec ce qui lui a été demandé.
50
Après avoir fini, le citoyen aura l’interface de la figure 37 contenant une série de
recommandations lisibles et audibles qui l’aideront à améliorer ses habitudes au sein de la
semaine qui suit, ainsi qu’un identifiant (ID : 8467c413) généré automatiquement qui lui
permettra de passer la deuxième consultation dans une semaine.
Si le citoyen se connecte avant la fin d’une semaine en utilisant son ID, il aura le message
inscrit sur la figure 38 et ne pourra passer à la deuxième consultation qu’après 7 jours.
En accédant après 7 jours, le citoyen aura la main pour faire sa deuxième consultation et
51
pourra avoir de nouvelles recommandations selon l’évolution de son état psychologique et de
sa résilience.
Pour assurer une meilleure portabilité de l’application, nous avons opté pour une version
responsive qui peut s’afficher correctement sur les navigateurs des différentes dimensions
d’écrans (smartphone, tablette, PC, …). La figure 39 illustre un aperçu sur la version mobile.
52
➢ Exporter les données en Excel
53
Tableau 9: Scénario nominal de la partie administrateur
Acteur Administrateur
4.3.1. Backlog
Le tableau 10 représente le backlog du sprint 4.
Durée Ma
Cas d’utilisation Description
(Heure) participation
100%
Réunion début du sprint 2
0%
Modifier les filtres 12
Filtrer les indices
0%
Test et correction de bugs 10
Ajout d’un bouton qui permet de 50%
Exporter les télécharger les résultats sous forme de 32
scores filtrés en fichier excel.
Excel 50%
Test et correction de bugs 8
54
Mise en place d’une interface 100%
16
graphique d’une carte géographique.
Consulter la carte Colorier les gouvernorats par un code 100%
24
de résilience couleur selon les résultats.
50%
Test et correction de bugs 8
Consulter le Créer un diagramme de résilience avec 100%
24
diagramme de le même code couleur de la carte.
résilience des 50%
Test et correction de bugs 8
universités
50%
Test et validation Test et validation 40
100%
Réunion fin du sprint 2
50%
Déploiement Déploiement 8
100%
Réunion fin de l’application 4
4.3.2. Réalisation
calculant les indices selon des formules confidentielles et nécessaires aux statistiques, où il
55
peut filtrer ces indices selon les données du premier formulaire. Il peut, par ailleurs, télécharger
un fichier Excel récapitulatif de résultats afin de garder une trace. Ce tableau de bord permet
de comparer les résultats des deux consultations et l’évolution des citoyens au bout d’une
semaine.
La partie administrateur est munie d’une carte de résiliences selon les gouvernorats
illustrée dans la figure 42 et d’un diagramme de résilience des universités montré par la figure
43.
56
4.3.3. Déploiement et lancement de l’application
Nous avons compilé la partie front-end. Puis, nous avons généré le WAR de l’application.
Par la suite, nous avons exporté la base de données sur un serveur MySQL. Enfin, à l’aide d’un
accès FTP, nous avons déployé l’archive englobant l’application (*.war) sur un serveur tomcat,
le 20 mai 2020.
Après le déploiement en mode production, nous avons fait appel au tableau comparatif
élaboré dans la section étude de l’existant et nous avons positionné notre application avec. Le
tableau 11 illustre clairement les valeurs ajoutées de notre application par rapport à l’existant.
Tableau 11: Comparaison entre les solutions existantes et notre application
Coté citoyen
UI ✔ ✔ ✘ ✔
Recommandation lisible ✔ ✔ ✔ ✔
Recommandation audible ✘ ✘ ✘ ✔
Anonymat ✔ ✔ ✔ ✔
Suivi ✘ ✘ ✘ ✔
Coté administrateur
Confidentialité ✔ ✘ ✔
Jauge ✘ ✘ ✔
Histogramme ✔ ✔ ✔
Carte géographique ✔ ✘ ✔
Authentification ✔ ✔ ✔
UI ✔ ✘ ✔
57
et de la recherche scientifique, M. Slim CHOURA, a lancé l’application le 12 juin 2020 dans
une conférence de presse organisée spécialement à cette fin.
4.4. Conclusion
Au cours de ce chapitre, nous avons présenté les objectifs à atteindre, puis, nous avons
enchaîné par une analyse des besoins, suivi par la réalisation de la deuxième version et nous
avons fini par le déploiement de la deuxième version de l’application sur le serveur du client.
58
Conclusion générale
Le présent document est une présentation du travail réalisé durant notre projet de fin
d’études au sein de la filiale DK Soft de la société Digital-Click.
Notre mission consiste à développer une application web pour le diagnostic et le conseil
des citoyens, et pour fournir les statistiques nécessaires aux experts. Nous avons commencé
par la compréhension du contexte générale du projet et l’identification des différentes
exigences du système. Nous avons, ensuite, opté pour la méthodologie de travail agile Scrum
pour prioriser nos tâches et dessiner un plan de travail clair et détaillé.
Malgré les contraintes de temps et les difficultés techniques que nous avons rencontrées
qui se résument principalement dans la compréhension du sujet et dans la complexité de son
architecture, le travail réalisé était d’une importance considérable dans la mesure où nous avons
pu atteindre une partie importante de nos objectifs initialement identifiés.
Notre application offre plusieurs fonctionnalités pour faciliter le processus de statistiques
notamment dans le domaine de psychologie. En effet, elle permet au citoyen d’améliorer ses
habitudes pour maintenir sa santé psychologique et mentale à travers des recommandations
faites par des experts en psychologie. « 9AWINY » permet en plus de faire les études
statistiques pour s’assurer de la santé psychologique des citoyens.
Ce projet est ouvert à des extensions ultérieures en y ajoutant la compilation des codes
en ligne au cours du passage de test des réponses aux psycho-questions. Nous pouvons aussi
ajouter la possibilité de changer les questions ouvertes via une interface graphique.
59
Webographie
60
Conception et développement d’une
application de diagnostic, de conseil, et
d’adaptation face aux situations
difficiles
Ahmed LEHYANI
إلى تصميم وتطوير وإعداد تطبيق ويب، DK Soft الذي تم تنفيذه في شركة، يهدف مشروع نهاية الدراسة:مل ّخص
..)يسمى "قويني" الكتساب القوة النفسية وبناء المرونة (القدرة على التعامل مع المواقف الصعبة واالستجابة بشكل إيجابي
لتطوير تطبيق يسمح للمواطنين بإجراء مسح عن بُعد وتلقي التوصياتAngular وSpring Boot استخدمنا إطار عمل
Agile لقد اعتمدنا منهجية.(االستشارة عن بُعد) حتى يتمكن المشرفون (علماء النفس) من استشارة النتائج المحسوبة
. في تحقيق هذا المشروعScrum
Résumé : Ce projet de fin d’études, effectué au sein de la société DK Soft, a pour objectif
de concevoir, développer et mettre en place une application web intitulée «9AWINY» pour
prendre des forces psychologiques et renforcer sa résilience (capacité à faire face aux situations
difficiles et à rebondir positivement). Nous avons utilisé les frameworks Spring Boot et
Angular pour développer une application qui permet aux citoyens de passer une enquête à
distance et recevoir des recommandations (Consultation à distance) afin que les administrateurs
(des psychologues) puissent consulter les scores calculés. Nous avons adopté la méthodologie
agile Scrum dans la réalisation de ce projet.
Summary: This end of studies project, carried out within the company DK Soft, aims to
design, develop and implement a web application called "9AWINY" to gain psychological
strength and build resilience (ability to cope with difficult situations and to bounce back
positively). We used the Spring Boot and Angular frameworks to develop an application that
allows citizens to take a remote survey and receive recommendations (Remote consultation) so
that admins (psychologists) can consult the calculated scores. We adopted the Agile Scrum
methodology in the realization of this project.