Rapport Mediouni Shayma
Rapport Mediouni Shayma
Rapport Mediouni Shayma
INFORMATIQUE
SUJET: COSAFINANCE
Shayma Mediouni
ii
Remerciements
les membres de mon équipe pour leur travail acharné et leur dévouement.
Enfin, je remercie tout le personnel de CosaVostra pour toute l’aide qu’ils ont
fournie.
iii
Table des matières
Introduction générale 1
1 Etude préalable 2
1.1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 L’organisme de l’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Contexte du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Analyse de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Méthodologies de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Choix de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Présentation de la méthododologie SCRUM . . . . . . . . . . . . . . . . . . . 7
1.3.3 Les rôles dans SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
iv
3 Sprint 1 26
3.1 Objectif du Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1 Sprint backlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Analyse spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1 Diagramme des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2 Diagramme des séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.1 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.2 Diagramme d’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Réalisation et Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.1 S’authentifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5.2 Mot de passe oublié . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5.3 Consulter la liste des devis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4 Sprint 2 42
4.1 Objectif du Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.1 Backlog du sprint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Analyse spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.2 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.3 Diagramme d’activité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.1 Diagramme de classe globale du sprint 2 . . . . . . . . . . . . . . . . . . . . . 52
4.4.2 Diagramme de séquence objet . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.5 Réalisation et test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5.1 Inscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5.2 Accepter contact client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5.3 Attribué contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.5.4 Consulter la liste des contacts des facturations . . . . . . . . . . . . . . . . . 57
4.5.5 Modifier et/ou exporter des contacts . . . . . . . . . . . . . . . . . . . . . . . 58
v
5 Sprint 3 59
5.1 Objectif du Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2.1 Backlog du sprint 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3 Analyse spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3.1 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3.2 Raffinement du cas d’utilisation «Consulter liste des objectifs» . . . . . . . . 62
5.3.3 Raffinement du cas d’utilisation «Consulter liste des factures» . . . . . . . . . 63
5.3.4 Raffinement du cas d’utilisation «Consulter les statistiques» . . . . . . . . . . 65
5.3.5 Diagramme de séquence «Modifier comptes clients» . . . . . . . . . . . . . . . 66
5.4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.1 Diagramme de classe du sprint 3 . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.2 Diagramme d’activité du cas d’utilisation «Ajout objectifs» . . . . . . . . . . 68
5.5 Réalisation et test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.5.1 Gestion des compte client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.5.2 Gestion des objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.5.3 Gérer les statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Conclusion générale 73
Netographie
Bibliographie 74
vi
Table des figures
vii
Table des figures
viii
5.11 Consultation des objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.12 Ajout des objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.13 Consultation la liste des statistique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
ix
Liste des tableaux
x
Liste des abréviations
xi
Introduction générale
Pendant les dernières années l’informatique s’est étendue dans le monde entier bien évidemment
ainsi qu’en Tunisie. En effet ce domaine a subi une évolution importante dans notre pays, on
entend du jours au lendemain la création de nouvelles applications qui peuvent être gratuites ou
payantes accessibles sur le desktop localement ou à l’aide de l’internet ces derniers sont nommées des
applications web qui fournissent des services numériques qui rendent la vie plus facile et confortable
à mener.
Dans ce contexte, l’agence « CosaVostra » dans laquelle nous avons effectué notre stage de fin
d’études, voudrait mettre en place une application web d’une outil de direction et reporting financier.
Cette solution interrogera différents ERP déjà existants basé sur les APIs, sous une architecture de
micro-services, pour centraliser et formaliser des indicateurs de croissance et gestion.
Dès lors, notre projet de fin d’études consiste à concevoir et à réaliser une application web dont le
but est de gérer les devis et des factures est pour le but de tracker les clients en retard de paiement
et ce en les regroupant selon le délai de retard qui sont déja importer a travers l’API SELLSY de
manipuler ses données selon le besoin de notre clients et d’ajouter des contacts de facturation à
sellsy à travers notre application.
Le présent rapport est organisé en cinq chapitres :
— Le premier chapitre intitulé « Cadre Général du projet » présente l’organisme d’accueil, décrit
le contexte de notre projet ainsi que la méthodologie adoptée.
— Le deuxième chapitre explique notre démarche, soit, l’identification des futurs acteurs de notre
système et l’analyse des besoins. Ainsi que la description de l’architecture choisie pour réaliser
notre solution.
— Le troisième chapitre portera sur la partie du développement du premier sprint ayant comme
but l’authentification et la gestion des devis. Nous présentons tout au long de ce chapitre la
conception et la réalisation du premier sprint.
— Le quatrième chapitre abordera le sprint 2 ayant comme but d’accepter des contacts et la
gestion des contacts de facturations.
— Le cinquième chapitre represente le dernier sprint qui permet de mettre en place la gestion des
objectifs et afficher les l’ensemble des clients en retard de paiement. Nous présentons tout au
long de ce chapitre la conception et la réalisation du premier sprint.
1
Chapitre 1
Etude préalable
Plan
1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . 3
2 Contexte du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Méthodologies de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Chapitre 1. Etude préalable
Introduction
Ce chapitre est consacré à la présentation du cadre général du projet ainsi que l’organisme
d’accueil « COSAVOSTRA ». Tout d’abord, nous présentons l’organisme d’accueil, le travail demandé.
Ensuite, nous effectuons une étude de l’existant. Enfin, nous expliquons notre méthode du travail,
le chronogramme du projet et le langage de modélisation que nous avons adoptée au cours de notre
travail.
Notre projet de fin d’étude intitulé « Conception et réalisation d’une application web d’un
outil financier» a pour but d’obtenir un diplôme d’ingénieur en informatique de l’Ecole Supérieure
Privée d’Ingénierie et de Technologie (ESPRIT).
Comme CosaVostra est proche culturellement et géographiquement de ses clients, elle est
présente avec ses services à Paris, Londres, Bordeaux et Tunis. L’approche adoptée par CosaVosta
3
Chapitre 1. Etude préalable
est basée sur les services. En effet CosaVostra fournit des prestations à haute valeur ajoutée dans
les domaines de digital, conseil, marketing, content ou encore le développement web. Les services
offerts par CosaVostra sont les suivants :
— Sites de médias
— Expertise :
— Production de contenu
Dans cette partie, nous allons présenter l’étude de l’existant, la problématique, les objectifs
ainsi les différentes étapes de déroulement du projet.
1.2.1 Problématique
Dans CosaVostra, attribuer les factures et les devis avec tri selon client causent beaucoup de
perturbations Le saisie de chaque facture et devis se font via une feuille Excel, par un comptable.
Parfois l’ordonnancement des devis et des factures créent beaucoup de conflit, pour tenter une
nouvelle décision doit être prise qui provoque plus d’intervention, plus de temps perdu et par
conséquent, cela crée un grand flux et le gonflage de la feuille Excel ... En se basant sur ces problémes,
le systéme extant souffre des perte de temps, perte des données ,...
L’analyse de l’existant permet de détecter les anomalies et les défauts des solution présentes
sur le marché afin de proposer une solution meilleure.
4
Chapitre 1. Etude préalable
— Zervant
— Mon AE
Les solutions présentes sur le marché sont soit payantes, donc pour bénéficier des services
proposés il faut ou bien payer au départ, ou bien propose un trial de maximum 30 jours pour découvrir
les fonctionnalités existantes, soit on les trouve gratuits mais avec des fonctionnalités restreintes et
il faut payer pour bénéficier des fonctionnalités plus développées.
Pour remédier à ces problèmes, CosaVostra a décide d’implémenter sa propre solution qui
consiste à un outil de direction financière avec des fonctionnalités personnalisées et plus développées
que celles présentes sur le marché. L’application « Finance Scheduler » permet de récupérer les
informations des factures et des clients à travers l’API SELSSY. Notre application offre également
un environnement pour la gestion de contrôle des devis , la gestion des factures qui détaille les retards
des clients. De plus, elle permet d’ajouter un contact à l’application Sellsy et de notifier les clients
afin de faire suivi de leurs devis qui contiennent toutes les informations nécessaires. Pour améliorer
et renforcer la permanence de notre application, «CosaFinance» fait une mise à jour des données
automatiquement.
Un projet informatique, quelle que soit sa taille et la portée de ses objectifs, nécessite la mise
en place d’un planning organisationnel tout au long de son cycle de vie. C’est ainsi qu’est apparue
la notion de méthode. Nous proposons une étude comparative dans le tableau 1.1 afin de choisir la
méthode la plus adéquate.
5
Chapitre 1. Etude préalable
6
Chapitre 1. Etude préalable
Gestion des risques Processus distinct, rigoureux, Gestion des risques intégrés
de gestion des risques dans le processus global,
avec responsabilisassions de
chacun dans l’identification
et la résolution des risques.
Pilotage par les risques.
Suite à l’étude comparative que nous avons effectuée dans la section précédente, et après une
longue délibération basée sur les besoins de notre client, nous avons opté pour «SCRUM» comme
méthode de gestion pour notre projet.
En effet, cette méthodologie agile est la plus utilisée et la plus populaire dans le monde. Ceci prouve
donc son efficacité et son rendement.
Cette méthodologie est basée sur l’esprit collaboratif et elle est adaptée aux méthodes incrementales.
De plus, la méthode Agile engendre des produits de haute qualité tout en tenant compte de l’évolution
des besoins du client.
Elle permet de détecter les problèmes le plus tôt au fur et à mesure, permettant ainsi d’entreprendre
des actions correctrices sans trop de pénalités dans les coûts et les délais. Il y a plusieurs méthodes
AGILE et il ne s’agit pas de choisir la meilleure méthode parmi celles existantes.
Scrum offre un cadre précis et souple, parfait pour les projets innovants ou complexes. Cette
méthode a pour objectif d’améliorer la productivité des équipes et de favoriser le dialogue entre le
client et le prestataire, afin d’optimiser la réussite des projets.
Le principe de Scrum est de développer un logiciel de manière incrémentale en maintenant une
liste totalement transparente des fonctionnalités à développer, des demandes d’évolutions ou de
corrections à implémenter (backlog). Avec des livraisons très fréquentes, le client reçoit à chaque
7
Chapitre 1. Etude préalable
fois un logiciel avec des fonctionnalités nouvelles, et en parfait état de fonctionnement. Pour cela,
la méthode s’appuie sur des développements itératifs à un rythme constant d’une durée de 1 à 4
semaines.
Scrum est une méthodologie agile qui consiste à avoir une équipe soudée orientant le projet
au fil de son avancement afin d’atteindre un but faisant intervenir trois rôles principaux qui sont :
Le Product Owner : dans la majorité des projets, le responsable produit (Product Owner) est
le responsable de l’équipe projet client. Dans notre projet le Product Owner est présenté par
M.PIERRE STEFANIE comme un expert métier afin de :
— Prioriser les fonctionnalités en fonction de leur importance et leur valeur ajoutée pour l’entreprise
qu’il présente.
Le Scrum Master est présenté par Mme Hajer Hanini, c’est le leader de l’équipe, il assure les tâches
suivantes :
L’équipe de développement est présentée par MEDIOUNI Chayma. Elle regroupe tous les rôles
habituellement nécessaires à un projet, à savoir l’architecte, le concepteur, le développeur, le testeur,
etc. Elle est « auto organisée » et elle reste inchangée pendant toute la durée du sprint. Son rôle
principal est :
— Transformer les besoins exprimés dans le Sprint Backlog (est défini ci-dessous) en fonctionnalités
utilisables.
8
Chapitre 1. Etude préalable
La figure 1.2 montre le cycle de vie de la méthode SCRUM et les relations entre le client et le Product
Owner..
Sprint (itération)
9
Chapitre 1. Etude préalable
Sprint Backlog
Conclusion
Dans ce chapitre, nous avons donné un aperçu du projet en décrivant l’organisme d’accueil,
CosaVostra, et le contexte du projet. Nous avons présenté aussi notre méthodologie de travail
pour réaliser notre projet, comme la méthode Scrum. Le reste du rapport sera organisé selon cette
méthode. Le chapitre suivant sera consacré au lancement du projet et la spécification de ses besoins.
10
Chapitre 2
Plan
1 Identification des acteurs du système . . . . . . . . . . . . . . . . . . . . 12
4 Le Backlog Produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Planification du sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Chapitre 2. Sprint 0 :Capture des besoins
Introduction
Ce chapitre est consacré à la capture des besoins fonctionnels et non fonctionnels de notre
système, au pilotage de projet avec scrum, par élaboration du Backlog produit avec une planification
des sprints ainsi qu’à la description de l’environnement de travail.
Un acteur est l’idéalisation d’un rôle joué par une personne externe, un processus ou une
chose qui interagit avec un système. [2] Pour notre application, nous avons identifier deux acteurs
un utilisateur et l’admin de notre application.
— L’utilisateur simple de l’aplication est le client qui suit son etat de paiement en temps réel .
— L’admin de notre application a tous les privilèges.Il peut accéder à toutes les interfaces de
l’application, ajouter des utilisateurs, gére des comptes client , gére les devis...
Les besoins fonctionnels représentent les actions qu’un système doit être capable d’exécuter et
qu’il ne sera opérationnel qu’une fois celles-ci sont effectués. Notre solution doit fournir un ensemble
de fonctionnalités répondant aux besoins de nos différents acteurs.
— Enregistrer contacts
Un utilisateur doit s’inscrire afin de bénéficier des avantages du notre application après la
confirmation de son adhésion par l’admin.
— Authentification
Un utilisateur admin doit s’authentifier pour qu’il puisse accéder à notre platform.
— Contrôler la gestion des devis (importer les données via API sellsy et l’exporter
via un doc csv)
L’interface Devis permet d’exporter la liste des devis avec l’api sellsy,l’afficher et ajouter ainsi
que modifier quelques informations relatives à un devis. Cette interface donne la possibilité
12
Chapitre 2. Sprint 0 :Capture des besoins
Les clients qui ont un retard de paiement sont regroupés selon des intervalles de jours de
retards.
L’interface de suivi des objectifs permet de fixer des objectifs pour chaque secteurs, insérer les
chiffres d’affaires atteint au fur et a mesur et ainsi avoir une visibilité sur le pourcentage de
réalisation des prévisions.
Les besoins non fonctionnels sont des besoins qui expriment la qualité du service rendu en
termes de performances, de temps d’exécution, d’évolution, etc. La prise en compte des spécifications
non fonctionnelles est essentielle, puisque ceci permet de nous guider lors de la conception de
l’architecture du système. Les principaux besoins non fonctionnels respectés par notre application
sont :
— Sécurité :
Accès sécurisé et personnalisé. Le système doit être sécurisé, Notre plateforme assure pour
chaque login un mot de passe bien sécurisé. Mise en place d’un système pour tracer les accès
dont la gestion se base sur une politique de gestion de rôle. Par ailleurs, l’accès aux interfaces
est fait suite à une analyse des rôles.
— L’ergonomie :
— Performance :
Dans cette section de ce chapitre nous allons détailler les fonctionnalités offertes par notre
systéme ainsi que leurs associations avec les acteus décrits auparavant à l’aide du diagramme de cas
d’utilisation globale de notre application.
13
Chapitre 2. Sprint 0 :Capture des besoins
Nous allons présenter les différentes tâches des acteurs dans le backlog produit :
14
Chapitre 2. Sprint 0 :Capture des besoins
Enregistrer
2.1 En tant que que client je peux m’inscrire 3
contacts 2
à l’application CosaFinance.
2.2 En tant qu’admin je reçois un email 4
contenat les données du nouveaux
contacts
Gestion
3.1 En tant qu’admin de l’application, je 5
des
peux consulter la liste des devis
devis 3
3.2 En tant qu’admin je souhaite exporter 6
les données de la liste des devis.
3.3 En tant qu’admin je souhaite modifier 7
quelque information à propos la liste des
devis
3.4 En tant qu’admin je souhaite de recepte 8
un email contenant les devis chaque
deux semaines
Suivie
4.1 En tant qu’admin je souhaite consulter 9
la
la liste des contacts de facturation.
gestion 4
4.2 En tant qu’admin je souhaite modifier 10
des
la liste des contacts de facturation
contacts
4.3 En tant qu’admin je peux d’exporter la 11
de
liste des contacts de facturation
facturations
4.4 En tant qu’admin je peux attribuer un 12
contacts à la liste des projet qui sont
déjà importer du sellsy et d’exporter
vers SELLSY.
Gestion
5.1 En tant qu’admin je peux confirmer des 13
des
5 comptes clients
clients
5.2 En tant qu’admin je souhaite suivre des 14
comptes clients
15
Chapitre 2. Sprint 0 :Capture des besoins
2.5 Architecture
16
Chapitre 2. Sprint 0 :Capture des besoins
— D’un niveau serveur d’applicatif prenant en compte les applications et les objets métiers.
L’architecture logique est une conception structurelle qui donne autant de détails que possible
sans contraindre l’architecture à une technologie ou un environnement particulier. La figure 2.3 nous
permet d’avoir une meilleure visibilité sur les différents composants de notre serveur client et serveur
d’application.
— Security layer : cette couche est le pare-feu de notre back-end, elle filtre les requêtes
HTTP à venir, à l’intérieur nous définissons les routes qui nécessitent une authentification
et son accessibilité en fonction du rôle.
— Core API platform : c’est une bibliothèque intégrée à Symfony 5, elle aide à créer des
API pilotées par hypermédia.
17
Chapitre 2. Sprint 0 :Capture des besoins
— Controller : il gère les requêtes HTTP à venir et renvoie les réponses json-ld dans notre
cas. Nous avons utilisé des opérations et des contrôleurs personnalisés pour gérer des
scénarios complexes
— Business layer : ou la couche service contient les opérations courantes comme Ajouter,
persister, Supprimer ... nous définissons toute notre logique métier à l’intérieur des classes
de service. Par exemple, nous avons créé des opérations pour conserver et mettre à jour
les données entrantes à partir d’API tierces dans les classes de services.
— Persistence layer : c’est là que nous définissons nos modèles de classe et les associations
entre eux.
— Components : ce sont des classes ou des fonctions javascript dans lesquelles nous définissons
la logique de l’interface utilisateur, elles acceptent d’autres propriétés (props) à venir
d’autres composants et renvoient la façon dont notre interface utilisateur prendra forme.
Il y a un composant racine qui enveloppe tous les autres composants (App.js) comme des
enfants, c’est pourquoi nous nous assimilons à une structure arborescente.
— Redux store : il s’agit d’un conteneur de gestion d’état global pour notre application
React. Tout composant connecté au store Redux peut envoyer un appel d’action, après les
appels d’actions transmettent des propriétés aux réducteurs(reducers), chaque réducteur
(reducer) a une action définie et un état donné, le rôle des réducteurs (reducers) est de
fournir le nouvel état aux composants.
Marque HP-Pavillion
Processus Intel
R Core i5-7200U CPU
Mémoire 12 GO
Système Ubuntu
d’exploitation
18
Chapitre 2. Sprint 0 :Capture des besoins
— Visual studio :
Pour le développement front-end, nous avons utilisé un nouvel éditeur développé récemment
par Microsoft : c’est Visual code studio. Cet éditeur a gagné une très bonne satisfaction au sein
de développeur front-end, c’est un outil open source qui facilite le développement moyennant
les langages JavaScript et TypeScript.
— ReactJS : C’est une bibliothèque JavaScript libre développée par Facebook depuis 2013.
Conçue principalement pour faciliter la création d’application web (Signle page application),
en utilisant les composants dépendant d’un état et générant une page (ou portion) HTML à
chaque changement d’état.
Dans notre application, on utilise la bibliothèque ReactJS pour le développement frontal.
19
Chapitre 2. Sprint 0 :Capture des besoins
— JavaSript :
C’est un langage de programmation qui est inclus dans le code HTML. Il permet d’apporter
des améliorations au langage HTML en permettant d’exécuter des commandes.
— HTML5 et CSS3 :
« Hyper Text Markup Langage 5 » HTML5 considéré comme l’une des nouvelles Technologies
les plus importantes, qui étaient émergées en 2010, et qui sont encore un travail ne sont pas
totalement finalisées par le W3C. Elle est un langage de balisage conçu pour la création des
pages Web.
Quant au CSS3 « Cascading Style Sheets » permet d’arrondir les images, faire des ombres sur
les divas, des ombres sur du texte, des polices de caractères plus fun, des bordures d’images,
20
Chapitre 2. Sprint 0 :Capture des besoins
etc. Et surtout l’ajout de l’animation. Il utilisait pour la description des styles et la disposition
des éléments des pages HTML
— Jetbrains PhpStorm :
PhpStorm est un IDE PHP léger et intelligent axé sur la productivité des développeurs, fournit
la complétion intelligente de code, une navigation rapide et la vérification des erreurs à la volée.
Il est toujours prêt à aider et créer des codes, exécutez des tests et fournir un débogage visuel.
— PHP :
Hypertext Preprocessor, connu sous le nom de PHP , c’est un langage de programmation libre,
particulièrement utilisé pour la conception des sites Web dynamiques moyennant un serveur
HTTP, Il s’agit d’un langage de programmation sous licence libre. PHP est un langage orienté
objet.
21
Chapitre 2. Sprint 0 :Capture des besoins
— Postman :
Postman est un logiciel qui se focalise sur les tests des API en interrogeant les micro Services, offrant
ainsi de nombreuses fonctionnalités, une prise en main rapide et une interface graphique agréable.
Tout d’abord, GitHub / GitLab n’est pas git. Beaucoup de gens confondent entre les deux. GitHub /
GitLab est un site Web pour l’hébergement de projets utilisant git. Git est un type VCS qui facilite le
suivi des modifications apportées aux fichiers. Il est utile pour coordonner le travail entre plusieurs
personnes sur un projet, et pour suivre les progrès dans le temps en enregistrant des «points de
contrôle».
22
Chapitre 2. Sprint 0 :Capture des besoins
— Visual Paradigm :
Visual Paradigm (VP) est un logiciel de création de diagrammes dans le cadre d’une programmation.
Il possède plusieurs fonctionnalités qui facilite énormément la modélisation en ULM.
— Sentry :
Sentry est principalement un service qui aide à suivre et à réparer les plantages en temps réel. Le
serveur est en Python, mais il contient une API complète pour envoyer des événements à partir de
n’importe quelle langue, dans n’importe quelle application
— Slack :
23
Chapitre 2. Sprint 0 :Capture des besoins
— Trello :
Trello est un outil de gestion de projet , lancé en septembre 2011. Il repose sur une organisation
des projets en planches listant des cartes, chacune représentant des tâches. Chaque carte, dans
notre projet, représente un sprint et dans chaque sprint (carte) on trouve les tâches associées
avec une date de début et une date de fin.
Comme nous utilisons Scrum dans notre travail, et après une compréhension approfondie du
backlog produit nous avons décidé de diviser notre travail en 3 sprints principaux.
24
Chapitre 2. Sprint 0 :Capture des besoins
Conclusion
Dans ce chapitre, nous avons planifié notre travail, identifié les besoins fonctionnels et non
fonctionnels de notre application, les rôles des utilisateurs, par la suite nous avons présenté le Backlog
de notre système. Ainsi nous avons détaillé la phase de planification des sprints. Enfin nous avons
choisi l’architecture de notre projet ainsi que notre environnement de travail.
25
Chapitre 3
Sprint 1
Plan
1 Objectif du Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 Analyse spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5 Réalisation et Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Chapitre 3. Sprint 1
Introduction
Dans ce chapitre nous allons concevoir et réaliser les fonctionnalité du sprint 1 de notre projet.
Nous allons en premier lieu présenter le sprint backlog, où nous allons détailler les fonctionnalités
demandées, l’étape suivante consiste à faire l’analyse et la conception des fonctionnalités spécifiées.
En fin, nous montrons l’output de ce sprint.
3.2 Analyse
Cette partie sera consacrée à l’analyse du premier sprint de notre projet, nous allons présenter
les backlog produit de sprint 1, les diagrammes de cas d’utilisation et leurs descriptions textuelles
ainsi que le diagramme d’activité et le diagramme séquence système.
Le backlog sprint est une liste des tâches identifiées par l’équipe Scrum à réaliser durant du
premier sprint. Lors de la réunion de planification du sprint, l’équipe sélectionne un certain nombre
de produits des éléments de backlog, généralement sous la forme de user stories, et identifie les tâches
nécessaires pour user stories. La plupart des équipes estiment également combien d’heures chaque
tâche nécessitera achevée. Dans la figure suivante, nous avons l’arriéré du sprint 1, l’estimation est
en jours.
27
Chapitre 3. Sprint 1
28
Chapitre 3. Sprint 1
29
Chapitre 3. Sprint 1
Acteur Admin
Objectif S’authentifier
Acteur Utilisateur
30
Chapitre 3. Sprint 1
Exception Si l’email saisi n’existe pas dans la base de données une alerte
s’affiche (message d’erreur)
Acteur Admin
31
Chapitre 3. Sprint 1
Acteur Admin
Acteur Admin
Acteur Admin
32
Chapitre 3. Sprint 1
Dans le diagramme qui présenté dans la figure 3.4 nous montrons comment l’ajout des
données.
Nous présentons ci-dessous le diagramme des séquences objets relative au cas d’utilisation
s’authentifier.
33
Chapitre 3. Sprint 1
34
Chapitre 3. Sprint 1
3.4 Conception
La figure ci-dessous illustre le diagramme des classes utilisées durant le premier sprint.
35
Chapitre 3. Sprint 1
Notre diagramme d’activité présente la premier étape pour consulter l’accueil de notre plateforme
est l’authentification.
36
Chapitre 3. Sprint 1
Dans cette partie nous présentons quelques interfaces représentant le travail élaboré dans ce
sprint.
3.5.1 S’authentifier
37
Chapitre 3. Sprint 1
Si l’utilisateur oublie son mot de passe il peut le réinitialiser comme suite (après avoir
appuyésur le bouton Mot de passe oublié ?) :
38
Chapitre 3. Sprint 1
Après avoir appuyé sur le bouton Envoyer le système affiche un message de succès et envoie
un email à l’adresse entrée
En appuyant sur "ce lien" dans l’email ci-dessus l’utilisateur est redirigé vers cette interface
de réinitialisation de mot de passe :
39
Chapitre 3. Sprint 1
En tant qu’administrateur, il permet de consulter la liste des devis sur notre plateforme ainsi
que les détails de chaque devis tel que la date de devis le reste à payer le pourcentage de paiements..
Cette interface permet à l’administrateur de consulter la liste de tous les devis de modifier
40
Chapitre 3. Sprint 1
Conclusion
Dans ce chapitre, nous avons créé l’artefact du projet avec un modèle principal, l’artefact les
services sont sécurisés à l’aide de JWT. L’artefact comprend des services d’authentification, page de
connexion, services pour l’importation des devis. Dans le chapitre qui suit, nous allons produire un
nouveau sprint couvrant les fonctionnalités suivantes : Gestion des contacts de facturation et valider
des nouveaux contacts.
41
Chapitre 4
Sprint 2
Plan
1 Objectif du Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3 Analyse spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5 Réalisation et test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Chapitre 4. Sprint 2
Introduction
Dans ce chapitre nous allons passer vers la réalisation du sprint 2 de notre projet, qui est la
gestion des contacts de facturation et de valider des nouveaux contacts. Nous allons en premier lieu
présenter le sprint backlog, où nous allons détailler les fonctionnalités demandées, l’étape suivante
consiste à faire l’analyse et la conception de notre application, finalement nous allons faire la partie
conception.
4.2 Analyse
Cette partie sera consacrée à l’analyse du premier sprint de notre projet, nous allons présenter
les backlog produit de deuxiéme sprint.
Nous allons présenter dans le tableau suivant le backlog du sprint 2 traduisant les différentes
fonctionnalités achevées de notre application durant ce sprint.
43
Chapitre 4. Sprint 2
Cette section est consacrée au raffinement des cas d’utilisation de ce sprint en se basant sur
les diagrammes des cas d’utilisation raffinés, une description textuelle des cas d’utilisation et leurs
diagrammes de séquences système.
La figure ci-dessous présente le cas d’utilisation globale qui illustre l’ensemble de fonctionnalités
à faire tout au long de ce sprint.
44
Chapitre 4. Sprint 2
Dans cette partie, nous allons présenter une description textuelle des cas «Enregistrer contacts»
45
Chapitre 4. Sprint 2
Acteur Client
46
Chapitre 4. Sprint 2
Le tableau 4.3 représente la description textuelle du cas d’utilisation «Consulter les contacts».
Acteur Admin
Scénario nominal -L’admin demande de consulter la page des suivi des contacts
de facturation.
-Le système affiche les détails des contacts.
Le tableau 4.4 représente la description textuelle du cas d’utilisation «Consulter une contact».
47
Chapitre 4. Sprint 2
Acteur Admin
Dans cette partie, nous allons présenter une description textuelle des cas «Attribué une
contacts».
Acteur Admin
48
Chapitre 4. Sprint 2
Acteur Admin
Acteur Admin
Le tableau 5.5 représente la description textuelle du cas d’utilisation «Exporter les contacts».
49
Chapitre 4. Sprint 2
Acteur Admin
Nous présentons ci-dessous le diagramme des séquences système relative au cas d’utilisation
afficher les détails de contacts de facturation.
50
Chapitre 4. Sprint 2
La figure 4.6 présente l’enchaînement suivi suite à la gestion des contacts du facturations :
51
Chapitre 4. Sprint 2
4.4 Conception
Cette partie est consacrée à la conception du sprint 2, pour ce faire nous commençons par le
diagramme de classe détaillé et par la suite le diagramme de séquence objet.
La figure ci-dessous présente le diagramme des classes utilisées durant la réalisation des
fonctionnalités du deuxième sprint.
52
Chapitre 4. Sprint 2
Nous présentons ci-dessous le diagramme des séquences objets relative au cas d’utilisation
«Enregistrer contacts» coté client.
53
Chapitre 4. Sprint 2
Cette partie sera consacrée pour la réalisation des tâches du deuxième sprint de notre projet.
Nous allons décrire le fonctionnement de l’application via les différentes interfaces réalisées dans ce
sprint.
4.5.1 Inscription
Le client doit remplir le formulaire pour qu’il soit ajouté à notre application aprés l’acceptation
du l’admin.
Aprés avoir remplir le formulaire un email sera envoyé automatiquement à l’admin de l’application.
54
Chapitre 4. Sprint 2
Une fois la demande du client enregistrer et envoyé, on passe à la liste des demandes comme
le montre a figure ci-dessous l’admiistrateur peut acceper cette demande ou non :
55
Chapitre 4. Sprint 2
Aprés avoir accepter la demande du client il sera ajouter à l’interface contacts client.
56
Chapitre 4. Sprint 2
57
Chapitre 4. Sprint 2
Cette interface permet à l’administrateur de consulter la liste de tous les contacts de modifier
et l’exporter sous la forme csv.
Conclusion
Ce chapitre a été dédié à la présentation du sprint 2. Nous avons établi en premier temps
le backlog produit de ce sprint. Ensuite nous avons défini les différentes fonctionnalités réalisés à
travers un diagramme de cas d’utilisation globale avec quelques descriptions textuelles. Puis, nous
avons passé à la partie conception en présentant le diagramme de classe de conception du module mise
à jour, nous avons aussi élaboré un digramme de séquence objet d’un cas d’utilisation. Finalement,
nous avons présenté les interfaces dans la partie réalisation qui montrent notre travail durant ce
sprint. Dans le chapitre qui suit, nous allons produire le dernier sprint couvrant les fonctionnalités
suivantes : Gestion des objectifs, gestion des compte client «factures» et statistique.
58
Chapitre 5
Sprint 3
Plan
1 Objectif du Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3 Analyse spécifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5 Réalisation et test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Chapitre 5. Sprint 3
Introduction
Dans ce chapitre nous allons passer à la présentation du sprint 3. Nous allons établir en
premier temps le backlog produit de ce sprint. Ensuite nous allons définir les différentes fonctionnalités
réalisés à travers un diagramme de cas d’utilisation globale avec quelques descriptions textuelles.
Puis, nous allons passer à la partie conception en présentant le diagramme de classe de conception
, nous allons aussi élaborer un digramme de séquence objet d’un cas d’utilisation. Finalement, nous
allons présenter les interfaces dans la partie réalisation qui montrent notre travail durant ce sprint.
Ce chapitre est consacré pour présenter le module gestion des statistiques , gestion des
objectifs et la gestion des factures. A la fin de ce livrable l’administrateur être capable de :
— Ajouter un objectifs.
5.2 Analyse
Nous allons présenter dans le tableau suivant le backlog du sprint 3 traduisant les différentes
fonctionnalités achevées de notre application durant ce sprint.
60
Chapitre 5. Sprint 3
Cette section est consacrée au raffinement des cas d’utilisation de ce sprint en se basant sur
les diagrammes des cas d’utilisation raffinés, une description textuelle des cas d’utilisation et leurs
diagrammes de séquences système.
La figure ci-dessous présente le cas d’utilisation globale qui illustre l’ensemble de fonctionnalités
à faire tout au long de ce sprint.
61
Chapitre 5. Sprint 3
La figure 5.2 repésente le raffinement du cas d’utilisation «Consulter liste des objectifs».
62
Chapitre 5. Sprint 3
Dans cette partie, nous allons présenter une description textuelle des cas «Consulter des
objectifs».
Acteur Admin
Acteur Admin
63
Chapitre 5. Sprint 3
Dans cette partie, nous allons présenter une description textuelle des cas «Consulter des
facture».
Acteur Admin
Acteur Admin
64
Chapitre 5. Sprint 3
Acteur Admin
65
Chapitre 5. Sprint 3
Le tableau ci-dessous représente la description textuelle des cas «Consulter les statistiques».
Acteur Admin
66
Chapitre 5. Sprint 3
67
Chapitre 5. Sprint 3
5.4 Conception
Cette partie est consacrée à la conception du sprint 3, pour ce faire nous commençons par le
diagramme de classe détaillé et par la suite le diagramme de séquence objet.
La figure 5.7 présente le diagramme des classes utilisées durant la réalisation des fonctionnalités
du troisième sprint.
68
Chapitre 5. Sprint 3
La figure ci-dessous répresente l’interface de consultation des suivie des compte clients.
69
Chapitre 5. Sprint 3
70
Chapitre 5. Sprint 3
71
Chapitre 5. Sprint 3
Conclusion
A la fin de ce chapitre, nous avons réussi à produire un incrément répondant aux besoins
du client et étant utilisé dans un environnement de production. Nous clôturons ce rapport par une
conclusion général.
72
Conclusion générale
Notre application web consiste à gérer les devis, les factures, les contacts des diffrerents
clients. La mise en place de cette application nous a permis de mettre en œuvre nos connaissances
théoriques acquises tout au long de notre formation à ’Ecole SupérieurePrivée d’Ingénierie et de
Technologie « ESPRIT ».
Ce travail nous a fourni également un grand apport au niveau de plusieurs niveaux. Sur le plan
technique, nous avons appris à manipuler la librairie REACT, les services développés par Symfony
5 et pleins d’autres outils. Nous avons également eu l’opportunité de maîtriser la conception en
utilisant UML. Le stage quotidien au sein de la société a aussi été pour nous une occasion unique qui
nous a apporté beaucoup d’enrichissement sur le plan relationnel. Bien que les principaux objectifs
de notre projet aient été atteints, le système que nous avons développé pourrait être enrichi par
d’autres fonctionnalités avancées et améliorations selon des nouveaux besoins demandés par notre
client. Aussi, Vu le grand volume de données de la direction, une extension de ce travail pourra
avoir lieu via l’utilisation de l’informatique décisionnelle qui englobe les solutions IT et qui leur
apporte une nouvelle vision contenant des rapports et des tableaux de bord de suivi des activités de
l’entreprise à la fois analytiques et prospectifs.
73
Netographie
Bibliographie
[1] F. Lothon. (Novembre 2019). The Scrum Guide. [consulté le 13-Mars-2020], Organisme,
adresse : https://agiliste.fr/guide-de-demarrage-scrum/.
[2] L. AUDIBERT. (Janvier 2020). UML. [consulté le 15-Mars-2020], Organisme, adresse : https:
//laurent-audibert.developpez.com/Cours-UML/?page=diagramme-cas-utilisation.
[4] ——, (Mars 2020). VSCode. [consulté le 20-Mars-2020], Organisme, adresse : https://www.c-
sharpcorner.com/article/what-and-why-reactjs/.
[9] Sylvain. (Octobre 2017). Postman. [consulté le 15-Mars-2020], Organisme, adresse : https:
//blog.webnet.fr/presentation-de-postman-outil-multifonction-pour-api-web/.
74
Résumé
Ce travail fait l’objet de sujet de fin d’études au sein de l’École Supérieure Privée d’Ingénierie et de
Technologies. Le travail a était effectué durant un stage de quatre mois à l’agence CosaVostra.
Notre mission consistait à concevoir et réaliser une application de direction et reporting financier
pour gérer les devis et les factures de CosaVostra ainsi que les contacts de facturations. L’application
«CosaFinance» est achevée en version web.
Pour la réalisation de l’application web, nous avons opté pour le Framework Symfony, la bibliothèque
ReactJS et pour la base de données nous avons opté pour MySql.
[email protected] : ¨¤rtk¯ d§rb 71 222 222 : HAf 71 111 111 : Ah Hw - ryb AfR - C® ry h
Rue du Lac Malaren, Les Berges du Lac 1053 Tunis Tél : 71 111 111 Fax : 71 222 222 Email : [email protected]
[email protected] : ¨¤rtk¯ d§rb 71 706 698 : HAf 71 706 164 : Ah TA§C 2080 ¨¤CAb A§r w h 2
2, Abou Raihane Bayrouni 2080 l’Ariana Tél : 71 706 164 Fax : 71 706 698 Email : [email protected]