PFE UP Pfe Siwar Et Anis
PFE UP Pfe Siwar Et Anis
PFE UP Pfe Siwar Et Anis
*****
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
*****
Université de Monastir
*****
Département informatique
Abstract
This work is part of the accomplishment of our End of Studies Project at the Higher Institute
of Computer Science and Mathematics of Monastir for the 2020-2021 academic year in order
to obtain the National Diploma of Fundamental License in Computer Sciences. This project
was carried out within the company « Make It Happen », It aims to set up a Web Application
that manage online insurances . To achieve this project, we used the Laravel and ReactJs and
Mysql frameworks to manage the database. We followed the 2TUP methodology to manage
our project. Through this document, we describe in detail the different stages of the realization
of this project.
Anis CHENNAOUI
Dédicaces
À mon cher papa pour ses encouragements et surtout pour son soutien financier et moral
À mes sœurs Hind, Amina et Yossr et mon Frère Naim qui ont été toujours présents pour m’aider
et m’encourager et qui n’ont jamais cessé de croire en moi
À Tous mes amis que j’aime et qui m’aiment et à Moez Sidhom et Akram Thabet en
particulièrement qui m'ont aidée dans les moments difficiles.
À toutes les personnes que j'ai rencontrées pendant mon parcours à l’ISIMM pour les traces qui
vont marquer la femme que je suis aujourd’hui, à tout jamais.
Siwar MEJRI
Remerciements
Avec beaucoup de plaisir, Nous tenons, tout d’abord, à exprimer notre profonde gratitude, notre
reconnaissance, notre respect et nos remerciements, les plus sincères à, Mr Sami BHIRI, notre
encadrant à l’Institut Supérieur d’Informatique et de Mathématique de Monastir pour sa
disponibilité, ses directives, ses conseils si enrichissants et qui s'est toujours montré à l'écoute
tout au long de ce travail.
Nos vifs remerciements sont adressés à, Mr Firas Boukhriss, notre encadrant à l’entreprise
d’accueil « Make It Happen » pour son accueil et sa précieuse collaboration.
Nous adressons l’expression de toute notre gratitude également à tous les enseignants de
L’ISIMM pour leurs qualités scientifiques et pédagogiques.
Nous tenons à remercier les respectueux membres du jury qui nous ont honorés d’avoir accepté
d’évaluer ce travail.
TABLE DES MATIÈRES
MVC : Model-View-Controller
CU : Cas d’Utilisation
Pour dépasser ces difficultés, nous cherchons à créer une application web de gestion
des assurances qui facilite la souscription d’assurance, le suivi des demandes de
remboursement et qui synchronise le travail du personnel.
Le présent rapport présente les différentes étapes de la réalisation de notre projet qui
s’étale sur quatre chapitres. Au niveau du premier chapitre « Contexte et objectifs », nous
présenterons le cadre général et l'idée émergeante du projet puis les solutions existantes et la
méthodologie de travail. Dans le deuxième chapitre « Analyse et spécification des besoins »,
nous mettrons l’accent sur les spécifications des besoins fonctionnels, non fonctionnels et les
besoins techniques. Nous procéderons au cours du troisième chapitre à la « Conception », nous
allons détailler la conception de la base de données, ainsi que, les couches logicielles de notre
application. Nous aborderons aussi la conception des interfaces utilisateurs. Dans le
quatrième chapitre intitulé « Réalisation », nous prendrons en analyse l'environnement
logiciel et matériel que nous allons utiliser pour le développement de l’application. Il illustre
aussi les différentes interfaces de notre système. Et pour finir, nous clôturerons notre rapport
par une conclusion générale.
1
Chapitre I. Contexte et objectifs du projet
Introduction
Au cours de ce chapitre, nous allons introduire notre projet en étudiant son cadre général et
la problématique qui a mené l'organisme d'accueil à réaliser cette application. Ensuite nous
allons procéder à l’étude de l’existant avec leurs critiques et nous introduirons les solutions
proposées.
Par la suite, nous allons aborder une étude sur les différentes méthodologies de travail
existantes afin de dégager celle la plus adéquate à notre projet.
1
Chapitre I Contexte et objectifs du projet
2. Etude de l’existant
L'étude de l'existant consiste à auditer les solutions existantes pour s’inspirer et pour raffiner
de plus l’idée immergeant.
2
Chapitre I Contexte et objectifs du projet
GAT ASSURANCES [2] est une compagnie d'assurance tunisienne qui offre une large
gamme de solutions pour les particuliers, professionnels et entreprises. Elle offre à ces
utilisateurs la possibilité de :
3
Chapitre I Contexte et objectifs du projet
2.1.3. BH Assurance
4
Chapitre I Contexte et objectifs du projet
5
Chapitre I Contexte et objectifs du projet
Au client :
 l’administration :
3. Méthodologie de travail
Avant de réaliser chaque projet, il est nécessaire de choisir une méthodologie de travail afin
d’aboutir à un logiciel fiable, adaptable et efficace. Et pour pouvoir choisir la méthodologie la
plus adéquate nous avons procédé à une comparaison entre la méthode 2Tup et la méthode
agile Scrum.
6
Chapitre I Contexte et objectifs du projet
7
Chapitre I Contexte et objectifs du projet
User story : C’est l’histoire utilisateur décrivant un besoin fonctionnel désiré par le
client.
Backlog du produit : Besoins priorisés par le product owner et estimés par l’équipe, qui
évoluent et sont affinés.
Sprint : Un Sprint est une itération. Il s'agit d'une période de 2 à 4 semaines maximum
pendant laquelle une version terminée et utilisable du produit est réalisée. Chaque
sprint a un objectif et une liste de fonctionnalités à réaliser.
Daily Meeting : C'est une réunion quotidienne qui permet de mettre le point sur ce qui
a été réalisé, les problèmes rencontrés et les objectifs de la journée.
8
Chapitre I Contexte et objectifs du projet
4. Diagramme de Gantt
Le diagramme de Gantt est un outil utilisé en ordonnancement et en gestion de projet qui
permet de visualiser dans le temps les diverses tâches qui composent un projet. La figure 1.7
montre graphiquement l'avancement de notre projet pendant la période du stage.
15-mars 25-mars 04-avr. 14-avr. 24-avr. 04-mai 14-mai 24-mai 03-juin 13-juin 23-juin
Formation
Conception
Implémentation
Test
Rédaction du rapport
Analyse et
Rédaction du
Test Implémentation Conception spécification des Formation
rapport
besoins
Date début 25-mars 28-mai 21-avr. 01-avr. 15-mars 15-mars
Jours pour finir 83 15 50 24 26 22
Conclusion
En guise de conclusion, dans ce chapitre nous avons mis notre projet dans son cadre général.
Ensuite, nous avons étudié les solutions existantes et proposé notre propre solution. Enfin,
nous avons clôturé par la méthodologie de développement que nous avons adoptée.
Dans le chapitre suivant nous allons spécifier les différents besoins auxquels doit répondre
notre application.
9
Chapitre II. Analyse et spécification des besoins
Introduction
L’étape d’analyse et spécification des besoins est une étape indispensable pour comprendre
les fonctionnalités que le système doit fourni. Dans ce chapitre nous présenterons les
fonctionnalités fournies et les acteurs concernés par notre système. Nous allons exprimer les
besoins fonctionnels et non fonctionnels sous forme de diagrammes de cas d’utilisation et des
diagrammes de séquence.
Internaute : C’est un simple visiteur du site, il peut consulter les nouveautés sur la page
d’accueil. Il a aussi le droit de créer un profil et devenir un client dans notre plateforme.
Client : C’est un internaute qui possède un profil dans le site, il peut consulter, modifier
ou supprimer son profil. Il peut également souscrire, consulter, annuler une assurance
comme il peut consulter ses factures, ses notifications et ses demandes de
remboursement.
10
Chapitre II Analyse et spécification des besoins
S’inscrire : L’internaute peut créer un profil dans notre plateforme afin de devenir un
client.
Consulter site : L’internaute peut consulter notre plateforme pour savoir les types
d’assurances existantes.
S’authentifier : Le client après avoir créé son compte il peut connecter à son profil avec
son email et mot de passe.
Gérer profil : chaque client peut consulter son profil, le supprimer ou modifier ses
informations.
Gérer assurance : le client peut déposer ou annuler une demande d’assurance, payer
ses factures en ligne et bien sûr consulter la liste des contrats de ces assurances.
Consulter notifications : une notification est envoyée au client pour l’informer de l’état
d’avancement de sa demande de remboursement ou d’assurance ou bien d’une facture
qu’il doit payer.
Communiquer via un système de chat : Le client peut échanger des messages avec
l'administrateur.
11
Chapitre II Analyse et spécification des besoins
S’authentifier : L'admin saisit son login et son mot de passe pour accéder à l'espace
administratif.
Gérer les demandes d’assurance : L'admin peut accepter ou refuser une demande
d'assurance selon plusieurs critères comme l’état de l’objet à assurer ou bien son type.
Consulter la liste des clients inscrits : Le super admin a le droit de consulter la liste des
clients inscrits dans notre plateforme.
Communiquer via un système de chat : L'admin peut communiquer avec les clients au
sein de son espace personnalisé.
L’application doit permettre au Super Admin de :
S'authentifier : Le super admin saisit son login et son mot de passe pour accéder à
l'espace administratif.
Gérer Admin : Le super admin peut ajouter, supprimer un admin ou modifier ses
privilèges.
13
Chapitre II Analyse et spécification des besoins
14
Chapitre II Analyse et spécification des besoins
15
Chapitre II Analyse et spécification des besoins
16
Chapitre II Analyse et spécification des besoins
Acteur Client
17
Chapitre II Analyse et spécification des besoins
18
Chapitre II Analyse et spécification des besoins
Acteur Client
Intérêt Elle permet au client de faire une demande pour réparer l’objet assuré au cas
d’incident.
Exception -Si le formulaire de la demande contient des champs vides ou des données
invalides Le système affiche un message d’erreur.
19
Chapitre II Analyse et spécification des besoins
Intérêt Elle permet au client de faire une demande pour réparer l’objet assuré au
cas d’incident.
20
Chapitre II Analyse et spécification des besoins
Ajouter personnel
-Le super admin demande l’ajout d’un personnel.
-le système affiche la page d’ajout.
-Le super admin remplit le formulaire par les informations nécessaires et
valide.
-le système vérifie la validité des informations.
- le système renvoie la page de personnel mise à jour avec un message.
Modifier personnel :
-Le super admin choisit le personnel à modifier.
-le système affiche les champs de personnel choisi.
-le super admin fait les modifications adéquates et confirme.
-Le système modifie le profil de personnel.
Supprimer personnel :
-Le super admin choisit le personnel à supprimer.
-le système demande la confirmation.
-le super admin confirme.
-Le système supprime le personnel.
Post condition La liste du personnel mise à jour.
Exception -S’il-y a des champs vides ou ils contiennent des données invalides Le
système affiche un message d’erreur.
-Si le personnel ajouté existe déjà dans la base, le système affiche un
message d’erreur.
21
Chapitre II Analyse et spécification des besoins
3. Choix technique
Pour le coté front-end nous allons utiliser la bibliothèque React JS et le framework Laravel
pour le coté back-end.
22
Chapitre II Analyse et spécification des besoins
Le but principal de cette bibliothèque est de faciliter la création d'application web mono-page,
via la création de composants réutilisables et dépendants d’état.
Nous avons opté pour la bibliothèque React JS pour les raisons suivantes :
La Flexibilité : Avec React, la création d’applications est simplifiée grâce à son API qui
permet une utilisation facile des composants et à l’utilisation d’un DOM virtuel.
Performance : React a été conçu pour offrir des performances élevées grâce à la mise en
œuvre d’un DOM virtuel ce qui rend les applications complexes extrêmement rapides.
La figure 2.9 présente un diagramme qui compare l’utilisation des frameworks JS les plus
utilisées.
Figure 2.9 : utilisation des frameworks JS les plus utilisées selon google trends
Sécurité : Laravel est l’un des frameworks les plus robustes et sécurisés. Parmi les
mesures de sécurité [8] qu’il offre : cryptage des mots de passe[8] lors de
l'enregistrement dans la BD, protection contre les injections SQL [8] et protection
contre les attaques de type CSRF (Cross-site request forgery) [8].
Performances améliorées : Laravel supporte divers outils pour fournir une excellente
performance aux applications web tels que Memcached et Redis [9], systèmes de
cache performant permettant de stocker pour un temps limité des données sur la
23
Chapitre II Analyse et spécification des besoins
mémoire vive, ce qui permet de renvoyer directement une donnée à l’utilisateur sans
avoir besoin d'accéder à la base de données.
La figure 2.10 présente une comparaison entre les frameworks PHP les plus utilisées.
Figure 2.10 : Les frameworks PHP les plus utilisés selon google trends
Conclusion
Dans ce chapitre, nous avons identifié les acteurs, les besoins fonctionnels et non-fonctionnels
de notre système à l’aide de diagrammes de cas d’utilisation et de séquence acteur système.
Aussi nous avons présenté le choix technique des frameworks à utiliser. Le troisième chapitre
sera consacré à la conception de notre application
24
Chapitre III. Conception
Introduction
Dans ce chapitre nous allons entamer une partie importante du développement de
l’application qui constitue un pont entre la spécification et la réalisation. Nous commencerons
par la présentation de l’architecteur générale de notre application ensuite la conception
générale puis la conception détaillée comprenant les vues statiques via les diagrammes de
classes. En fin nous clôturerons ce chapitre par quelques fonctionnalités de l'application à
l'aide des maquettes.
1. Modèle architectural
Après avoir fait le choix de la méthodologie 2TUP, la démarche de conception sera en
adéquation avec l'architecture de l'application
Avant de développer notre application, il est indispensable de choisir un modèle de
conception (pattern design). Parmi les patrons les plus connues, nous mentionnons
l’architecture 3-tiers et le patron Modèle-Vue-Contrôleur (MVC).
La couche métier est en charge d’appliquer et de respecter les règles métiers (ou actes
de gestion). Avec ce modèle d’architecture, la logique applicative et la sécurité sont
implémentées dans cette couche.
La couche d’accès aux données, quant à elle, assure la persistance des données qui
doivent être conservées.
25
Chapitre III Conception
Le modèle : il gère les données de site, son rôle est de récupérer les informations dans
la base de données, de les organiser et de les assembler pour qu'elles puissent ensuite
être traitées par le contrôleur
La vue : elle représente l’interface utilisateur, sa première tâche est d'afficher les
données qu'elle a récupérées auprès du modèle. Sa seconde tâche est de recevoir
toutes les actions de l'utilisateur. Ses différents événements sont envoyés au
contrôleur.
26
Chapitre III Conception
27
Chapitre III Conception
28
Chapitre III Conception
29
Chapitre III Conception
30
Chapitre III Conception
Vue : cette couche comporte les composants « Components » qui correspondent aux
interfaces graphiques via lesquelles l’utilisateur interagit avec le système et provoque
des évènements.
Dans la couche Vue nous avons défini les classes suivantes : « Client »,
« Remboursement», « Assurance », « Facture », « Personnel», « Admin » ,
« Notification », « Message », « objetAssuré ».
Service : cette couche comporte les classes « Service » qui permettent de structurer les
traitements et interagir avec le serveur.
31
Chapitre III Conception
Dans la couche Service nous avons défini les classes suivantes : «Client.service», «
Remboursement.service », « Assurance.service », « Facture.service » , «
Personnel.service », «Admin.service» , « Notification.service», « Message.service»,
« objetAssuré.service»
Routing : Le routage dans Laravel permet de router une requête vers son contrôleur
approprié. Ainsi, nous distinguons un routeur pour chaque contrôleur. Par exemple
« Facture.routing » définit la logique de routage des requêtes vers le contrôleur
« Facture ».
Controller : cette couche comporte les contrôleurs qui permettent de reçevoir tous les
événements de l'utilisateur et enclenche les actions à effectuer.
Dans la couche Controller nous avons défini les classes suivantes : «Client.controller»,
« Remboursement.controller », « Assurance.controller », «Facture.controller » ,
«Personnel.controller»,«Admin.controller»« Notification.controller», « Message.contr
oller », « objetAssuré.controller »
Model : cette couche représente les entités métiers gérés par notre application. Il y a
une analogie entre les entités de cette couche et les relations/tableaux de la base de
données. En effet, pour chaque entité il correspond un tableau qui permet la gestion de
la persistance des instances de l’entité correspondante. A partir des classes de cette
couche, le Framework LARAVEL génère automatiquement la couche DAL (Data Access
Layer) qui permet d’interagir avec la base de données.
Dans la couche Model nous avons défini les classes suivantes : « Client », «
Remboursement », « Assurance », « Facture », « Personnel », «Admin » ,
« Notification », « Message », « ObjetAssuré ».
32
Chapitre III Conception
33
Chapitre III Conception
34
Chapitre III Conception
35
Chapitre III Conception
36
Chapitre III Conception
37
Chapitre III Conception
38
Chapitre III Conception
39
Chapitre III Conception
40
Chapitre III Conception
3.3.2. Maquettage
Le maquettage est une étape indispensable, il permet de donne une idée sur le site et sur les
différentes interfaces sous forme de schéma. Dans ce qui suit, nous allons illustrer quelques
maquettes de notre application :
41
Chapitre III Conception
42
Chapitre III Conception
Conclusion
Dans ce chapitre, nous avons détaillé les principales étapes de la conception de notre projet.
En effet, nous avons commencé par présenter l’architecture générale de notre application.
Ensuite, nous avons détaillé la conception de la base de données via le modèle conceptuel de
données et le modèle relationnel. Puis nous avons passé à la conception logicielle en donnant
le diagramme de classe qui détaille la vue statique et des diagrammes de séquence qui
détaillent la vue dynamique de notre système. Enfin nous avons présenté la conception
graphique des interfaces utilisateur en donnant les différents liens de navigation entre elles.
43
Chapitre IV. Réalisation
Introduction
Dans ce dernier chapitre nous allons décrire les différents outils et frameworks utilisés pour
la réalisation de notre application. Ainsi, nous présenterons aussi quelques interfaces de notre
application.
Processeur i5 i7
44
Chapitre VI Réalisation
Visual Studio Code Visual Studio Code est un éditeur de code open-source,
gratuit et multi-plateforme, développé par Microsoft.
Principalement conçu pour le développement
d'application avec JavaScript, Type Script et Node.js,
l'éditeur peut s'adapter à d'autres types de langages
grâce à un système d'extension bien fourni.
45
Chapitre VI Réalisation
46
Chapitre VI Réalisation
2. Bibliothèque React
L’application cliente est créée par la bibliothèque ReactJS. Cette bibliothèque permet de créer
des interfaces utilisateur et de faciliter la création d'application web mono-page via la création
de composants dépendants.
Pour mettre en place un projet React, il faut tout d’abord installer l’environnement d'exécution
NodeJS du son site officiel.
Après avoir installé le nodeJS nous sommes en mesure d’implémenter notre application.
Dans ce cas, Il suffit de lancer la commande suivante dans le Cmd pour créer un nouveau
projet :
Ensuite, une fois l'installation est terminée, nous devons ouvrir le dossier de projet :
Et lancer le serveur :
Pour la structure du projet il n’y a pas une par défaut, mais l’approche la plus populaire
consiste à placer les fichiers CSS, le JS et les tests ensemble dans des dossiers groupés par
fonctionnalité ou par route comme il est montré par la figure suivante :
47
Chapitre VI Réalisation
48
Chapitre VI Réalisation
De ce fait, React crée un DOM virtuel qui est une copie du DOM original et lorsque des
changements sont effectués sur cette copie, une comparaison entre le DOM original et le
VDOM est effectuée pour ne mettre à jour que les composants modifiés et pour éviter les
modifications inutiles du DOM original qui sont coûteuses du point de vue des performances
car les modifications apportées au DOM entraînent généralement un nouveau rendu de la
page.
Mount : Il intervient quand une instance du composant est créée dans le DOM.
Unmount : cette méthode est appelée une fois qu'un composant est retiré du DOM.
3. Framework Laravel
Laravel est un framework web PHP open-source, destiné au développement d'applications
web suivant le modèle architectural modèle – vue – contrôleur (MVC).
Public : Le dossier public contient tous les fichiers accessibles directement par les
visiteurs. Par exemple, les images publiques du site doivent être dans le dossier public
(ou dans un sous-dossier du dossier public).
Vendor : Le dossier vendor contient toutes les dépendances PHP téléchargées par
Composer. Nous pouvons trouver dans vendor/laravel/framework le code source de
Laravel. Les fichiers de ce dossier ne doivent pas être changés car ces modifications
seront écrasées par le Composer dans la prochaine mise à jour.
49
Chapitre VI Réalisation
50
Chapitre VI Réalisation
Models : le Modèle représente les entités métiers manipulées par l’application et qui
sont stockées dans la base de données. Avec la couche DAL (Data Access Layer), il
permet de récupérer, d'insérer et de mettre à jour les données correspondantes dans
la base de données. La figure 4.5 illustre l’entité métier « Client » de la couche « model »
de notre application.
51
Chapitre VI Réalisation
Le routing : le routing est un mécanisme qui effectue le mapping des requêtes vers les
contrôleurs appropriés. La figure 4.7 illustre quelques routes de notre application.
View : les vues définissent le rendu graphique à afficher à l’utilisateur. La figure 4.8
illustre un exemple de vue de notre application
52
Chapitre VI Réalisation
53
Chapitre VI Réalisation
54
Chapitre VI Réalisation
4. Travail réalisé
Dans cette section nous allons présenter quelques interfaces graphiques de l’application qui
illustrent les différents cas d'utilisation.
55
Chapitre VI Réalisation
56
Chapitre VI Réalisation
57
Chapitre VI Réalisation
5. Etat de réalisation:
Nous avons réalisé 70% des fonctionnalités spécifiées, il nous reste 30%. Par catégorie la
figure 4.18 décrit les fonctionnalités réalisées et non réalisées.
58
Chapitre VI Réalisation
Conclusion
Au cours de ce dernier chapitre, nous avons commencé par la présentation des
environnements logiciels et matériels que nous avons utilisés. Ensuite, nous avons décrit les
frameworks adoptées dans le développement de notre application à savoir ReactJS et Laravel.
Enfin, nous avons clôturé par quelques interfaces qui présentent les principales
fonctionnalités de notre application.
59
Conclusion générale
N otre projet intitulé « Gestion d’assurance en ligne » synthétise le travail de quatre mois
au sein de la société « Make It Happen ». Il s’agit d’une application web qui avait pour
but d’améliorer le quotidien d’une assurance et d’automatiser les tâches du personnel.
Notre rapport comporte quatre chapitres : Le premier chapitre a été consacré pour le contexte
général du projet. Nous avons commencé par le cadre de projet ensuite nous avons audité les
processus et les solutions informatiques déjà existantes afin de perfectionner le sujet de notre
projet. Puis, nous avons procédé à une comparaison entre les méthodologies existantes ce qui
nous a aidé à choisir la méthodologie 2TUP. Le deuxième chapitre a été consacré à l’analyse et
la spécification des besoins fonctionnels et non fonctionnels via les diagrammes de cas
d’utilisations et les diagrammes de séquence. Nous avons aussi justifié nos choix techniques,
ReactJs pour le front-end et Laravel pour le Back-end, pour l’implémentation de notre
application. Dans le troisième chapitre nous avons présenté le modèle architectural de notre
système, la conception de la base de données, la conception logicielle détaillée et le
maquettage de quelques interfaces de notre application. Finalement, nous avons clôturé par
le quatrième chapitre qui a été consacré à la spécification des différents outils matériels et
logiciels utilisés dans le développement de notre application et nous avons fini par des
captures d’écran du travail réalisé.
Ce travail nous a permis de mettre en œuvre les acquis théoriques que nous avons appris tout
le long de notre cursus universitaire, de consolider et d’approfondir nos connaissances dans
les bonnes pratiques de la gestion de projet vu que nous avons eu l’opportunité d’organiser
son déroulement dès le début et de maitriser les langages de programmation qui seront
certainement utiles au niveau professionnel.
60
Webographie
13/06/2021 »
61