Conception Et Développement de La Sandbox Connectapi
Conception Et Développement de La Sandbox Connectapi
Conception et développement de la
SANDBOX ConnectAPI
Réalisé par :
ROUDALI Walid
Tuteur (s) :
“
Je dédie ce rapport à toutes les personnes qui m’ont soutenu et encouragé tout
au long de ce projet.
Merci.
2
Remerciement
Que les membres de jury trouvent, ici, l’expression de mes sincères remerciements pour
l’honneur qu’ils me font en prenant le temps de lire et d’évaluer ce travail.
Merci à toutes ces personnes qui ont contribué de près ou de loin à la réussite de ce
projet. Votre soutien et votre implication ont été d’une valeur inestimable, et je vous en
suis profondément reconnaissant.
3
Résumé
Le présent projet synthétise le travail réalisé dans le cadre de notre projet
de fin d’études qui vient de conclure notre formation d'ingénieur d'état en
Ingénierie Informatique et Réseaux à l’EMSI. Le projet a été réalisé chez HPS
(Hightech Payment Systems) à Casablanca.
L’objectif de notre projet consiste à optimiser la Sandbox en repensant sa
fonctionnalité et son interface d'administration. Dans ce rapport de stage, nous
présentons les différentes étapes réalisées pour la conception et le développement
de la solution apportée.
Dans ce sens, nous avons situé le projet dans son cadre pour une meilleur
compréhension du sujet. Puis, nous avons fait une étude fonctionnelle et
technique. Ensuite, nous avons fait l’analyse et la conception du Sandbox
ConnectAPI. Enfin, nous avons présenté le résultat du travail que nous avons fait.
4
Abstract
This report summarizes the work carried out as part of our end-of-study
project as engineering student at EMSI to obtain the engineering degree in
Computer Engineering and Networks. This document constitutes a
summarization of our graduation project at HPS (Hightech Payment Systems) in
Casablanca.
The objective of our project is to optimize the Sandbox by redesigning its
functionality and its administration interface. In this document, we present the
various steps taken for the design and development of the proposed solution.
In this regard, we have placed the project in its context for a better
understanding of the subject. Then, we conducted a functional and technical
study. Next, we analyzed and designed the Sandbox ConnectAPi. Finally, we
presented the results of the work we have done.
5
Liste des abréviations
Abréviation Désignation
HPS Hightech Payment Systems
API Application Programming Interface
YAML Yet Another Markup Language
UML Unified Modeling language
JAKRTAA Java Enterprise Edition
QQOQCP Qui-Quoi-Ou-Quand-Comment-Pourquoi
UI Interface utilisateur
REST REpresentational State Transfer
HTTP Hypertext Transfer Protocol
JSON JavaScript Object Notation
CSS Cascading Style Sheets
DOM Document Object Model
SPA Single Page Application
SOA Architecture orientée Service
NPM Node Package Manager
6
Liste des figures
Figure 1 - Logo HPS ............................................................................................................................... 15
Figure 2 - Actionnariat de HPS dans les entreprises collaboratrices .................................................... 15
Figure 3 - Organigramme de HPS .......................................................................................................... 16
Figure 4 - Les activités de HPS............................................................................................................... 17
Figure 5 - Architecture de PowerCARD ................................................................................................. 17
Figure 6 - Vue globale de la méthode SCRUM. ..................................................................................... 20
Figure 7 - Sprints par fichier Excel......................................................................................................... 21
Figure 8 - Diagramme de Gantt............................................................................................................. 22
Figure 9 - Uml logo ................................................................................................................................ 29
Figure 10 - Diagramme de Cas d'Utilisation global de la Sandbox ConnectAPi HPS............................. 30
Figure 11 - Diagramme de Séquence du cas de Test des APIs par l’utilisateur .................................... 32
Figure 12 - Diagramme de Séquence pour l'Administrateur : Cas d'Activation d'un Compte Utilisateur
.............................................................................................................................................................. 33
Figure 13 - Diagramme de class ............................................................................................................ 34
Figure 14 - Architecture technique du système.................................................................................... 37
Figure 15 - Jakarta EE logo .................................................................................................................... 39
Figure 16 - Spring Boot logo .................................................................................................................. 39
Figure 17 - logo Spring data JPA............................................................................................................ 40
Figure 18 - JAVASCRIPT logo ................................................................................................................. 40
Figure 19 - REACTJS logo ....................................................................................................................... 41
Figure 20 - Tailwind CSS Logo ............................................................................................................... 41
Figure 21 - Gradle Logo ......................................................................................................................... 41
Figure 22 - Npm Logo ............................................................................................................................ 42
Figure 23 - JUnit 5 ................................................................................................................................. 42
Figure 24 - Visual studio code............................................................................................................... 42
Figure 25 - Postman Logo ..................................................................................................................... 43
Figure 26 - Intellij Idea logo .................................................................................................................. 43
Figure 27 - flyway Logo ......................................................................................................................... 44
Figure 28 - Bitbucket Logo .................................................................................................................... 44
Figure 29 - Git Logo ............................................................................................................................... 45
Figure 30 - OpenApi Logo...................................................................................................................... 45
Figure 31 - Swagger Logo ...................................................................................................................... 46
Figure 32 - StopLight LOGO ................................................................................................................... 46
Figure 33 - L’interface Accueil sandbox-ui ............................................................................................ 48
Figure 34 - l'interface Login sandbox-ui ................................................................................................ 49
Figure 35 - L’interface inscription sandbox-ui ...................................................................................... 49
Figure 36 - L'interface Produits light mode Sandbox-ui........................................................................ 50
Figure 37 - L'interface product release sandbox-ui .............................................................................. 51
Figure 38 - L'interface Solution sandbox-ui .......................................................................................... 51
Figure 39 - L'interface module sandbox-ui ........................................................................................... 52
Figure 40 - L'interface Api sandbox-ui .................................................................................................. 52
Figure 41 - L'interface produit sandbox-admin .................................................................................... 53
Figure 42 - l'interface product release sandbox-admin ........................................................................ 54
Figure 43 – L’interface solution sandbox-admin................................................................................... 54
7
Figure 44 - l'interface module sandbox-admin ..................................................................................... 55
Figure 45 - L'interface utilisateur sandbox-admin ................................................................................ 55
Figure 46 - L'interface d’ajout d’un utilisateur sandbox-admin ........................................................... 56
Figure 47 - L'interface de modification d’un utilisateur sandbox-admin.............................................. 56
Figure 48 - L'interface de suppression d’un utilisateur sandbox-admin............................................... 57
8
Liste des tableaux
Tableau 1 - La méthode QQOQCP ....................................................................................................... 25
9
Table des matières
Dédicace ................................................................................................................................................. 2
Remerciement........................................................................................................................................ 3
Résumé ................................................................................................................................................... 4
Abstract.................................................................................................................................................. 5
Liste des abréviations ........................................................................................................................... 6
Liste des figures ..................................................................................................................................... 7
Liste des tableaux .................................................................................................................................. 9
Table des matières............................................................................................................................... 10
Introduction générale ......................................................................................................................... 13
Chapitre 1 ............................................................................................................................................ 14
1 Contexte générale du projet ....................................................................................................... 15
1.1 Présentation de l’organisme d’accueil ................................................................................ 15
1.1.1 L’entreprise HPS « Hightech Payment Systems » ........................................................... 15
1.1.2 Historique de HPS............................................................................................................ 16
1.1.3 Organigramme de l’entreprise ........................................................................................ 16
1.1.4 Les activités de HPS ......................................................................................................... 17
1.1.5 La solution monétique PowerCard.................................................................................. 17
1.2 Cadre du projet .................................................................................................................... 18
1.2.1 Présentation du projet .................................................................................................... 18
1.2.2 Objectif du Stage ............................................................................................................. 18
1.2.3 Missions et tâches ........................................................................................................... 19
1.3 Dossier de pilotage .............................................................................................................. 19
1.3.1 Environnement et Méthodologie de travail.................................................................... 19
1.3.2 La méthode Agile............................................................................................................. 19
1.3.3 La méthode Scrum .......................................................................................................... 20
1.3.4 Pourquoi Scrum ? ............................................................................................................ 20
1.3.5 Planification du projet ..................................................................................................... 21
Conclusion ......................................................................................................................................... 22
Chapitre 2 ............................................................................................................................................ 23
2 Spécification et analyse ............................................................................................................... 24
2.1 Etudes de l’existant ............................................................................................................. 24
2.2 Problématique ..................................................................................................................... 24
10
2.3 Solution................................................................................................................................ 24
2.4 Périmètre du projet ............................................................................................................. 25
2.4.1 Analyse des besoins ........................................................................................................ 26
Conclusion ......................................................................................................................................... 27
Chapitre 3 ............................................................................................................................................ 28
3 Étude conceptuelle ...................................................................................................................... 29
3.1 Formalisme UML.................................................................................................................. 29
3.2 Diagramme de cas d’utilisation ........................................................................................... 30
3.2.1 Définition des acteurs ...................................................................................................... 31
3.2.2 Description des cas d’utilisation ..................................................................................... 31
3.3 Diagramme de séquence ..................................................................................................... 31
3.3.1 Diagramme de Séquence du cas de Test des APIs par l’utilisateur ................................ 32
3.3.2 Diagramme de Séquence pour l'Administrateur : Cas d'Activation d'un Compte .......... 33
3.4 Diagramme de classe ........................................................................................................... 34
Conclusion ......................................................................................................................................... 35
Chapitre 4 ............................................................................................................................................ 36
4 Architecture technique ............................................................................................................... 37
4.1 Architecture logicielle du système ...................................................................................... 37
4.2 Environnement de Développement .................................................................................... 38
4.2.1 Choix technologique........................................................................................................ 38
4.2.2 Langages et Frameworks ................................................................................................. 39
4.2.3 Outils de développement ................................................................................................ 42
Conclusion ......................................................................................................................................... 46
Chapitre 5 ............................................................................................................................................ 47
5 Mise en œuvre .............................................................................................................................. 48
5.1 Sandbox-UI .......................................................................................................................... 48
5.1.1 L’interface Accueil.......................................................................................................... 48
5.1.2 L’interface Login ............................................................................................................ 49
5.1.3 L’interface inscription ..................................................................................................... 49
5.1.4 L’interface produits ......................................................................................................... 50
5.1.5 L’interface product release .............................................................................................. 51
5.1.6 L’interface Solution ........................................................................................................ 51
5.1.7 L’interface Module.......................................................................................................... 52
5.1.8 L’interface API................................................................................................................ 52
5.2 Sandbox-Admin ................................................................................................................... 53
5.2.1 L’interface produits ......................................................................................................... 53
11
5.2.2 L’interface product release .............................................................................................. 53
5.2.3 L’interface Solution ........................................................................................................ 54
5.2.4 L’interface Modules ........................................................................................................ 54
5.2.5 Gestion des utilisateurs ................................................................................................... 55
Conclusion ......................................................................................................................................... 57
Conclusion générale ............................................................................................................................ 58
Webographie......................................................................................................................................... 59
12
Introduction générale
Les APIs (Interfaces de Programmation d'Applications) constituent des
ensembles de définitions et de protocoles qui permettent aux applications logicielles de
communiquer entre elles. Elles définissent les moyens d'accéder aux données et aux
fonctionnalités d'une application de manière standardisée, favorisant ainsi l'intégration
et l'échange d'informations entre des applications tierces. Dans le paysage actuel du
développement d'applications modernes, les APIs jouent un rôle crucial en promouvant
l'interopérabilité et la modularité des systèmes logiciels.
Les APIs révolutionnent le monde du développement logiciel en offrant une
multitude d'avantages aux développeurs et aux utilisateurs finaux. Elles favorisent la
réutilisation du code, permettant aux développeurs de se concentrer sur la création de
nouvelles fonctionnalités plutôt que de réécrire du code existant. De plus, les APIs
stimulent l'agilité et l'innovation en facilitant la collaboration entre les équipes de
développement et la création de solutions innovantes en combinant des services
existants.
Face à l'adoption croissante des APIs, le projet de fin d'études se concentre sur
l'optimisation de la Sandbox ConnectAPI en repensant sa fonctionnalité et son interface
d'administration. L'objectif central est de développer un espace administratif intuitif qui
simplifie la gestion des documentations d'API et permet une personnalisation avancée
des espaces clients. Ce projet vise à créer une interface graphique flexible et conviviale,
permettant aux administrateurs de gérer efficacement les APIs et d'adapter l'interface
aux besoins spécifiques de chaque client.
Ce rapport de fin d'études se structure en cinq chapitres pour vous présenter le
projet dans son intégralité. Le premier chapitre vous plongera dans le contexte général,
en exposant le cadre du sujet, le dossier de pilotage et les objectifs du projet. Ensuite,
le chapitre de Spécifications et Analyse se divise en deux parties. La première analysera
l'environnement actuel et ses limitations. La seconde reformulera la problématique à
résoudre et définira précisément le périmètre du projet. Le rapport se poursuit avec
l'étude conceptuelle qui présente les concepts clés et les solutions envisagées pour
répondre à la problématique. L'architecture technique détaille ensuite la structure
logicielle et matérielle du projet, expliquant les technologies employées. Le chapitre de
mise en œuvre vous plonge au cœur du développement. Enfin, la conclusion résume les
points clés et les réalisations du projet, l'évaluant par rapport aux objectifs initiaux et
proposant des perspectives d'évolution futures.
13
Chapitre 1
Contexte général du projet
14
1 Contexte générale du projet
1.1 Présentation de l’organisme d’accueil
1.1.1 L’entreprise HPS « Hightech Payment Systems »
Les clients de HPS sont les Banques commerciales – Banques Centrales Institutions de
microfinance Switchs nationaux et régionaux - Retailers Opérateurs Télécoms – Pétroliers. Les
solutions de HPS englobent toute la chaîne de valeur du paiement et couvrent tant la gestion
de l’émission, de l’acquisition, du switch que l’ensemble des activités de paiement sur une
seule et unique plateforme. « PowerCard » est, en effet, une solution hautement paramétrable
qui permet à ses utilisateurs une personnalisation et une réactivité maxi- males pour s’adapter
à la nature de leurs activités et accompagner leur évolution. Doté d’une interface ergonomique
et intuitive, PowerCard offre un grand confort d’utilisation et réduit sensiblement les coûts
d’intégration, de développement et de formation à de nouvelles solutions liées au lancement de
nouveaux produits. Certifiée PA-DASS et par l’ensemble des organismes de paiement
internationaux tels que Visa, MasterCard, Diners Club, Japan Credit Bureau, American Express
et China Union Pays,PowerCard permet une acceptation globale des réseaux de paiement
internationaux.
15
1.1.2 Historique de HPS
16
1.1.4 Les activités de HPS
17
PowerCARD a été conçu pour couvrir l’ensemble des transactions (processing) liées à
l’activité de paiement. Cette solution est composée de 3 suites logicielles qui assurent les
activités de Back, Middle et Front Office.
Front-Office : Cette suite gère le pilotage des terminaux et guichets automatiques. Elle
assure notamment les fonctions de sécurité et de vérification, la communication avec les
moyens d’acquisition (TPE, GAB, Internet, etc.), la collecte et l’autorisation des transactions
ainsi que la gestion des commerçants et des parcs de terminaux d’acquisition, etc.
Middle-Office : Cette deuxième suite assure le lien entre l’acquéreur et l’émetteur pour
l’octroi d’autorisations, et le routage dans le cadre d’une interopérabilité na- tionale et/ou
internationale, etc.
Back-Office : C’est la suite qui assure la gestion de l’émission de tous types de cartes
(crédit, débit, prépayée, fidélité, etc.), la gestion de la personnalisation des cartes, la gestion de
l’acquisition par les commerçants, la compensation (nationale et internationale), la gestion des
litiges, le reporting, l’alimentation de la comptabilité des émetteurs et acquéreurs, etc.
18
1.2.3 Missions et tâches
En ingénierie logicielle, les pratiques agiles mettent en avant la collaboration entre des
équipes auto-organisées et pluridisciplinaires et leurs clients. Elles s’appuient sur l’utilisation
d’un cadre méthodologique léger mais suffisant centré sur l’humain et la communication.
19
changements de priorités, aux nouveaux besoins des clients ou aux conditions du marché. Cela
est particulièrement important dans les environnements en constante évolution, où les
exigences ne sont pas toujours clairement définies au départ. Ainsi, elles favorisent une
collaboration étroite entre les équipes de développement, les clients et les parties prenantes.
Autre point important : la méthode Agile repose sur une relation privilégiée entre le
client et l’équipe projet. La satisfaction du client étant la priorité.
L’approche Agile offre une plus grande flexibilité et une meilleure visibilité dans la
gestion du projet. A notre époque où la personnalisation est si importante, cette méthodologie
fait de plus en plus d’adeptes.
Scrum est un Framework avec lequel les utilisateurs peuvent résoudre des problèmes
d’adaptation complexes tout en proposant de manière productive et créative des produits de la
plus haute valeur possible. C'est l'opposé d'une grande collection de composants obligatoires
entrelacés. Scrum n'est pas une méthodologie. Scrum met en œuvre la méthode scientifique de
l'empirisme. Scrum remplace une approche algorithmique programmée par une approche
heuristique, dans le respect des personnes et l’auto-organisation, pour faire face à
l’imprévisibilité et résoudre des problèmes complexes.
La méthode Scrum a été choisie pour ce projet pour plusieurs raisons. Tout d'abord,
Scrum est une méthodologie agile qui est particulièrement adaptée au développement de
20
logiciels, car elle permet une flexibilité accrue et une collaboration étroite entre les membres
de l'équipe. Elle permet également une livraison rapide et continue des fonctionnalités, ce qui
est important dans un projet de développement de logiciels. De plus, Scrum est une méthode
itérative et incrémentale, ce qui signifie que le projet est divisé en plusieurs itérations ou sprints,
avec des livraisons de fonctionnalités à chaque sprint. Cette approche permet de s'assurer que
les fonctionnalités les plus importantes et les plus prioritaires sont livrées en premier.
Et que le projet peut s'adapter rapidement aux changements de priorités ou aux
nouveaux besoins. Enfin, Scrum encourage une forte collaboration entre les membres de
l'équipe, ce qui est important dans un projet complexe impliquant plusieurs équipes et parties
prenantes. Il permet également une transparence et une communication ouverte, ce qui est
essentiel pour assurer la réussite du projet.
Pour illustrer le processus de réalisation du projet, nous utilisons un fichier Excel pour
représenter l'état d'avancement des différentes tâches du projet. Ce fichier inclut les Sprints,
leur description, et leur statut d'avancement.
21
• Estimer la durée prévue pour chaque tâche ;
• Repérer les éventuels chevauchements de tâches et leur durée ;
• Déterminer les dates de début et de fin du projet dans son ensemble.
Grâce à sa représentation graphique claire, le diagramme de Gantt facilite la
planification, la coordination et le suivi des projets, offrant ainsi un moyen pratique de gestion
pour les équipes et les parties prenantes. Son utilisation permet de visualiser rapidement l’état
d’avancement global du projet et de prendre des décisions éclairées pour optimiser la
progression.
Conclusion
Le premier chapitre présente un point de départ pour l’élaboration du projet. Il définit
son contexte général, l’organisme d’accueil, le cadre général et finalement il présente
l’approche adoptée pour mener le projet à bien. Dans le chapitre suivant, nous allons présenter
la phase de l’étude de l’existant, la problématique et finalement le périmètre du projet.
22
Chapitre 2
Spécification et analyse
Ce chapitre détaille la méthodologie employée dans notre projet de fin d'études. Après
avoir présenté le contexte organisationnel, nous examinerons les étapes clés et les phases de
développement. Nous aborderons également les défis rencontrés et les solutions apportées,
offrant ainsi une vue d'ensemble du processus suivi.
23
2 Spécification et analyse
2.1 Etudes de l’existant
Nous avons mené une étude de l'existant en analysant différentes plateformes de gestion
de Sandbox API disponibles sur le marché. Cette analyse approfondie nous a permis de
comprendre les fonctionnalités existantes ainsi que les bonnes pratiques appliquées dans ce
domaine spécifique. Nous avons également exploré d'autres solutions similaires disponibles à
un coût potentiellement plus abordable.
Nous avons constaté que la Sandbox ConnectAPI actuelle, bien qu'utile pour fournir un
environnement contrôlé aux développeurs et aux clients pour explorer et tester les APIs,
présente plusieurs limitations. La gestion des documentations d'API nécessite actuellement une
manipulation directe des fichiers YAML de spécification Swagger, ce qui peut être fastidieux
et source d'erreurs. De plus, l'interface utilisateur manque de personnalisation, limitant ainsi sa
flexibilité pour répondre aux besoins spécifiques des différents utilisateurs et clients.
Après avoir évalué ces aspects et pris en compte les options disponibles sur le marché,
nous avons conclu que la refonte de la Sandbox ConnectAPI est nécessaire pour améliorer son
efficacité opérationnelle, augmenter sa flexibilité et offrir une expérience utilisateur enrichie.
Nous envisageons donc de développer une nouvelle interface d'administration basée sur des
technologies modernes telles que [Link], Spring Boot, en intégrant des fonctionnalités
graphiques avancées pour la gestion des documentations d'API. Cette approche garantira la
fiabilité de la plateforme tout en répondant pleinement aux exigences spécifiques de nos clients
et utilisateurs.
2.2 Problématique
Dans l'écosystème des API, la Sandbox de ConnectAPI joue un rôle crucial en
permettant aux développeurs et aux clients de tester et d'interagir avec les API dans un
environnement contrôlé. Cependant, l'infrastructure actuelle présente plusieurs limitations qui
impactent négativement l'expérience utilisateur. La gestion des documentations d'API nécessite
la manipulation directe des fichiers YAML de spécification Swagger, un processus non
seulement fastidieux, mais également sujet aux erreurs. De plus, la personnalisation de
l'interface graphique pour répondre aux besoins spécifiques des différents clients est limitée,
réduisant ainsi la flexibilité et l'efficacité de la plateforme.
2.3 Solution
Pour résoudre cette problématique, nous allons concevoir une interface d'administration
intuitive et personnalisable qui simplifie la gestion des documentations d'API et permet une
personnalisation avancée des espaces clients. Une telle interface offrirait non seulement une
meilleure expérience utilisateur, mais augmenterait également l'efficacité opérationnelle des
administrateurs de la plateforme.
24
En repensant l'interface et les fonctionnalités de la Sandbox, le projet vise à créer une
solution qui répond aux besoins évolutifs des clients et des développeurs. L'intégration de
fonctionnalités graphiques pour la gestion des APIs, ainsi que la personnalisation de la
bibliothèque Swagger-UI, permettront de surmonter les limitations actuelles, offrant ainsi une
plateforme plus flexible, robuste et adaptée aux exigences spécifiques de chaque client.
Questions Réponses
Administrateurs de la plateforme
ConnectAPI, développeurs
Qui ? À qui cela s'adresse ? utilisant les APIs, et clients
interagissant avec les
fonctionnalités des APIs.
Redéfinir la Sandbox ConnectAPI
en développant une interface
Quoi ? À propos de quoi s'agit-il ?
d'administration intuitive et
personnalisable.
La manipulation directe des
fichiers YAML de spécification
Swagger est fastidieuse, et la
Où ? Où réside le problème ?
personnalisation de l'interface est
limitée, réduisant la flexibilité de la
plateforme.
Le besoin est apparu avec
l'augmentation de la complexité et
Quand ? À partir de quand ?
des exigences des clients utilisant
la Sandbox ConnectAPI.
Développer une interface
d'administration conviviale et
personnalisable, intégrer des
Comment ? De quelle façon procéder ? fonctionnalités graphiques pour la
gestion des documentations d'APIs,
et personnaliser la bibliothèque
Swagger-UI.
Pour améliorer l'expérience
utilisateur, rendre la gestion des
Pourquoi ? Dans quelle finalité ? APIs plus simple et flexible, et
permettre une personnalisation
avancée des espaces clients.
Tableau 1 - La méthode QQOQCP
25
2.4.1 Analyse des besoins
Cette section expose les besoins fonctionnels et non fonctionnels, accompagnés d'un
diagramme de cas d'utilisation.
[Link] Besoins fonctionnels
26
Réutilisabilité du code : Concevoir l'application de manière modulaire et réutilisable afin de
faciliter le développement de nouvelles fonctionnalités et de réduire le temps et les efforts
nécessaires pour les intégrer dans le système existant.
Conclusion
Dans ce deuxième chapitre, nous avons posé les bases pour notre projet. En identifiant
la problématique, définissant les objectifs et planifiant les étapes, nous avons tracé la voie à
suivre pour la réalisation de notre solution. Ces éléments guideront nos actions à venir vers la
concrétisation de notre projet.
27
Chapitre 3
Analyse & conception
Après avoir terminé les phases de spécifications et d'analyse, nous entamons l'étude
conceptuelle. Pour commencer, on va aborder la conception préliminaire du système en me
basant sur les fonctionnalités identifiées, avant de passer à la conception détaillée.
28
3 Étude conceptuelle
Cette section présente plusieurs scénarios d'utilisation du système, ainsi que les
diagrammes de classes et de cas d'utilisation.
UML, (Unified Modeling Language), que l’on peut traduire par ”langage de
modélisation unifié” est une notation permettant la modélisation d’un problème. Ce langage
est né de la fusion de plusieurs méthodes existantes auparavant, et est devenu la référence en
termes de modélisation objet. Entre 1910 et 1990, de nombreux analystes ont mis au point des
approches orientées objets, ainsi en 1994 il existait plus de 50 méthodes objet. Toutefois seules
3 méthodes ont véritablement émergé :
• La méthode OMT de Rumbaugh
• La méthode BOOCH’93 de Booch.
• La méthode OOSE de Jacobson (Object Oriented Software Engineering)
A partir de 1994. Rumbaugh et Booch (rejoints en 1995 par Jacobson) ont uni leurs
efforts pour mettre au point la méthode unifiée incorporant les avantages de chacune des
méthodes précédentes. La méthode unifiée à partir de la version 1.0 devient UML (Unified
Modeling Language), une notation universelle pour la modélisation objet. UML 1.0 est soumise
à l’OMG1 en janvier 1997 mais elle ne sera acceptée qu’en novembre 1997 dans sa version
1.1, date à partir de laquelle UML devient un standard international cette méthode représente
un moyen de spécifier, représenter et construire les composantes d’un système informatique.
En effet, la notation unifiée définit 9 diagrammes pour représenter les différents points de vue
de modélisation. Ces diagrammes permettent de visualiser et de manipuler les éléments de
modélisation. Les diagrammes définis par UML, sont les suivants :
Les diagrammes de cas d’utilisation : représentation des fonctions du système du
point de vue de l’utilisateur.
Les diagrammes de séquence : représentation temporelle des objets et de leurs Les
diagrammes d’activités représentation du comportement d’une opération en termes d’actions.
Les diagrammes d’activités : représentation graphique du comportement d’une
méthode ou le déroulement d’un cas d’utilisation.
29
Les diagrammes de classes : représentation de la structure statique en termes de classes
et de relations.
La conception est la plus importante étape du cycle du développement d’application.
Elle se base essentiellement sur la bonne spécification et l’analyse des besoins. A présent, nous
sommes dans la phase de concevoir la solution, et définir les composants globaux de notre
projet.
30
3.2.1 Définition des acteurs
Dans le contexte de la modélisation des systèmes, un acteur est une représentation d'une
entité externe au système étudié, telle qu'un utilisateur humain, un dispositif matériel ou encore
un autre système. L'acteur est impliqué dans un scénario d'utilisation et joue un rôle en
interagissant directement avec le système.
Les acteurs qui interagissent avec la Sandbox ConnectApi sont:
L'authentification est obligatoire tant pour l'administrateur que pour l'utilisateur afin d'accéder
au système, garantissant ainsi que seuls les individus autorisés peuvent utiliser ses ressources
et ses fonctionnalités. Ce diagramme décrit efficacement les rôles d'utilisateur du système et
leurs fonctionnalités correspondantes.
31
3.3.1 Diagramme de Séquence du cas de Test des APIs par
l’utilisateur
32
manière interactive aux actions de l'utilisateur, assurant une expérience utilisateur fluide et
informative.
Figure 12 - Diagramme de Séquence pour l'Administrateur : Cas d'Activation d'un Compte Utilisateur
33
du succès. En cas d'échec, le système retourne un message explicatif indiquant les raisons du
problème rencontré. Cette séquence d'actions illustre comment le système facilite la gestion
efficace des utilisateurs par l'administrateur, en garantissant la sécurité et la conformité des
opérations effectuées.
34
spécifiques de ce produit. Cette hiérarchie permet une gestion efficace des produits et de leurs
versions tout au long du cycle de vie applicatif.
• Gestion des Accès et Autorisations : Chaque User est associé à plusieurs Product à
travers une relation d'accès. Les Rôles attribués aux utilisateurs définissent leurs
permissions spécifiques via des Authority, régulant ainsi les actions permises dans le
système. Par exemple, un administrateur pourrait avoir accès à toutes les fonctionnalités
et données, tandis qu'un utilisateur standard pourrait être restreint à certaines
opérations.
• Traçabilité et Sécurité des Sessions : Les Token sont utilisés pour gérer
l'authentification des utilisateurs. Chaque token est associé à un utilisateur spécifique
et contient des informations de création, d'expiration et de validation (createdAt,
expiresAt, validatedAt), garantissant ainsi la sécurité des sessions actives et la
prévention des accès non autorisés.
• Structuration Modulaire : Les Solutions regroupent plusieurs Modules, qui à leur
tour contiennent des Api et des Scenarios. Cette structure modulaire permet une gestion
flexible et évolutive des fonctionnalités offertes par le système, facilitant ainsi le
développement, la maintenance et l'extension des capacités applicatives.
Ce diagramme de classes vise à fournir une représentation claire et organisée des entités
et de leurs interactions, soutenant ainsi une implémentation robuste et sécurisée du système
applicatif développé.
Conclusion
Ce Chapitre a été consacré à la partie modélisation du système en se basant sur les
spécifications détaillées par le métier. Dans le prochain chapitre nous aborderons la partie
technique qui présente les architectures implémentées et les techniques choisies pour le
développement du projet.
35
Chapitre 4
Architecture technique
Après avoir établi les bases de la conception préliminaire dans le chapitre précédent,
nous passons maintenant à l'architecture technique et aux outils nécessaires pour la mise en
œuvre du système. Ce chapitre détaillera les différents outils et technologies sélectionnés pour
assurer une réalisation efficace et conforme aux spécifications établies.
36
4 Architecture technique
4.1 Architecture logicielle du système
37
La partie back-end de l'application est développée avec Spring Boot, un framework Java
puissant pour la création de services web robustes. L'architecture back-end est divisée en
plusieurs couches :
Controller Layer : Cette couche reçoit les requêtes HTTP provenant du front-end. Les
contrôleurs traitent les requêtes, exécutent la logique métier nécessaire et renvoient les réponses
appropriées au front-end.
Service Layer : La couche service contient la logique métier de l'application. Elle
interagit avec les contrôleurs pour traiter les requêtes et avec la couche de persistance pour
accéder aux données. Cette séparation de la logique métier permet une organisation claire du
code et facilite les tests unitaires.
Repository or DAO Layer : Cette couche gère l'accès aux données. Les repositories
ou DAOs (Data Access Objects) sont responsables de la communication avec la base de
données, effectuant des opérations de lecture, d'écriture, de mise à jour et de suppression des
données.
DB (Database) : La base de données stocke toutes les données persistantes de
l'application. Elle est accessible via la couche Repository ou DAO, garantissant ainsi une
séparation claire entre la logique métier et l'accès aux données.
Le choix technologique a été effectué en se basant sur les technologies les plus récentes
et les plus avancées, en utilisant des critères rigoureux pour garantir que seules les technologies
à l'état de l'art ont été sélectionnées.
Ce choix a été effectué par HPS, qui a évalué les différentes technologies disponibles
sur le marché pour s'assurer que le système utilise les technologies les plus adaptées à ses
besoins. En choisissant les technologies les plus récentes et les plus avancées, nous pouvons
répondre aux exigences des besoins non fonctionnels.
38
4.2.2 Langages et Frameworks
[Link] JAKARTA EE
Spring Boot est un Framework Java populaire conçu pour faciliter la création
d'applications web. Spring Boot fournit un ensemble d'outils et de bibliothèques préconfigurés
pour faciliter le développement rapide et la mise en œuvre d'applications.
Spring Data est un ensemble de projets qui fournissent une couche d'accès aux données
simplifiée et unifiée pour les applications basées sur Spring.
En implémentant Spring Data, nous pouvons facilement créer et gérer des microservices
qui interagissent avec différentes sources de données de manière efficace et cohérente. Spring
Data peut être utilisé avec une variété de sources de données, notamment les bases de données
SQL, NoSQL (MySQL) et les services REST.
39
Figure 17 - logo Spring data JPA
[Link] JavaScript
[Link] ReactJS
ReactJS est une bibliothèque JavaScript open source utilisée pour la construction
d'interfaces utilisateur pour les applications web. Il est principalement utilisé pour la création
de composants réutilisables et d'applications à page unique (SPA).
ReactJS offre plusieurs avantages qui en font un outil précieux pour le développement
web :
40
Figure 19 - REACTJS logo
Tailwind CSS est un framework CSS moderne et utilitaire qui permet de concevoir des
interfaces utilisateur rapidement et de manière efficace. Contrairement aux frameworks CSS
traditionnels comme Bootstrap, Tailwind CSS se concentre sur l'utilisation de classes utilitaires
pour styliser les éléments HTML, plutôt que d'imposer un ensemble prédéfini de composants.
[Link] Gradle
Gradle est un système de gestion de build avancé, open-source et basé sur Groovy et
Kotlin. Il simplifie et automatise le processus de build des projets logiciels en permettant aux
développeurs de définir les tâches de manière déclarative à l'aide de DSL (Domain-Specific
Language). Gradle offre une flexibilité remarquable, une gestion efficace des dépendances, et
une extensibilité grâce à ses nombreux plugins, en faisant un choix populaire pour les projets
de développement Java et Android.
[Link] Npm
Npm, abréviation de Node Package Manager, est le gestionnaire de paquets par défaut
pour l'environnement d'exécution JavaScript [Link]. Il se compose d'un client en ligne de
commande, également nommé npm, et d'une base de données en ligne de paquets publics et
privés payants, connue sous le nom de registre npm. npm facilite la gestion des dépendances
logicielles en permettant aux développeurs d'installer, de mettre à jour, de partager et de
41
distribuer des modules JavaScript et des bibliothèques de code réutilisables, essentiels au
développement d'applications [Link].
[Link] JUnit 5
JUnit 5 est la prochaine génération de JUnit. L’objectif est de créer une base à jour pour
les tests côté développeur sur la JVM. Cela inclut de se concentrer sur Java 8 et versions
ultérieures, ainsi que de permettre de nombreux styles de test différents.
Figure 23 - JUnit 5
Visual Studio Code (VS Code) est un éditeur de code source léger, open-source et
multiplateforme développé par Microsoft. Il offre une expérience de développement riche et
personnalisable pour une variété de langages de programmation, y compris JavaScript,
TypeScript, Python, C#, et bien d'autres. Doté d'une interface utilisateur moderne et intuitive,
VS Code propose des fonctionnalités telles que la coloration syntaxique, la complétion
intelligente du code, le débogage intégré, le contrôle de version avec Git, et la prise en charge
d'extensions pour étendre ses fonctionnalités. Il offre également des fonctionnalités avancées
telles que la refactorisation du code, la recherche et le remplacement avec des expressions
régulières, et la gestion des tâches et des configurations de construction. Grâce à son
écosystème d'extensions volumineux et actif, les développeurs peuvent personnaliser VS Code
selon leurs besoins spécifiques, ce qui en fait un choix populaire parmi les développeurs pour
le développement d'applications web, mobiles, et cloud.
42
[Link] Postman
Postman est une plateforme logicielle complète conçue pour faciliter le développement,
le test et la gestion des API. Il offre aux développeurs un environnement intuitif pour créer,
envoyer et analyser des requêtes HTTP vers des API. Postman permet non seulement de tester
différentes méthodes HTTP telles que GET, POST, PUT et DELETE, mais aussi de vérifier les
en-têtes, les paramètres, les corps de requête et les réponses des API. De plus, il propose des
fonctionnalités avancées telles que la gestion de collections d'API, la génération de scripts
automatisés pour les tests, la documentation d'API interactive et la collaboration au sein
d'équipes de développement.
43
[Link] flyway
[Link] Bitbucket
Bitbucket est une plateforme de gestion de code source basée sur Git, offrant des
fonctionnalités de collaboration et de contrôle de version pour les équipes de développement
de logiciels. Propriété d'Atlassian, Bitbucket permet aux utilisateurs de créer des dépôts Git
privés ou publics, de gérer des projets de manière efficace, et de collaborer avec d'autres
développeurs à travers des pull requests, des commentaires et des intégrations avec des outils
de développement tiers. Bitbucket prend en charge les workflows de développement Agile et
propose des fonctionnalités avancées telles que l'intégration continue (CI/CD), la gestion des
branches, et la sécurité des dépôts avec des permissions granulaires.
[Link] Git
Git est un système de gestion de versions de code source distribué qui permet de suivre
les modifications apportées à un projet de développement de logiciel. Il permet aux
développeurs de travailler en équipe et de collaborer sur un projet de manière efficace.
Git stocke chaque version du projet sous forme de commit, qui enregistre les
modifications apportées aux fichiers du projet. Nous pouvons travailler sur différentes branches
44
du projet en parallèle, puis fusionner les branches une fois que les modifications ont été testées
et validées.
[Link] OpenApi
développement d'APIs.
[Link] Swagger
Swagger est une suite d'outils open-source qui utilise la spécification OpenAPI pour
concevoir, documenter et tester des APIs. Les principaux composants de Swagger incluent :
• Swagger Editor : Un éditeur en ligne qui permet de créer et d'éditer des fichiers de
spécification OpenAPI de manière intuitive.
• Swagger UI : Une interface utilisateur interactive qui génère une documentation
visuelle et permet de tester les endpoints de l'API en temps réel.
• Swagger Codegen : Un générateur de code qui produit des clients et des serveurs dans
différents langages de programmation à partir des fichiers OpenAPI.
Swagger est devenu un outil incontournable pour les développeurs souhaitant améliorer
la qualité et l'efficacité de leurs APIs.
45
Figure 31 - Swagger Logo
[Link] StopLight
Stoplight est une plateforme de gestion d'APIs qui offre une suite d'outils pour la
conception, la documentation et le test des APIs. Parmi ses principaux composants, on trouve:
• Stoplight Studio : Un éditeur visuel puissant pour créer et modifier des spécifications
OpenAPI, avec des fonctionnalités de validation et de prévisualisation en temps réel.
• Stoplight Documentation : Permet de générer et d'héberger une documentation
interactive et attrayante pour les APIs, facilitant ainsi la compréhension et l'utilisation
des APIs par les développeurs.
• Stoplight Testing : Offre des outils de test et de simulation pour garantir la
conformité des APIs aux spécifications définies.
Stoplight se distingue par son interface utilisateur conviviale et ses fonctionnalités avancées,
qui aident les équipes de développement à gérer efficacement le cycle de vie des APIs.
Conclusion
Dans ce quatrième chapitre, nous avons examiné les outils essentiels à la réalisation de
notre solution. En choisissant judicieusement ces ressources, nous avons établi une base
pratique pour transformer notre vision en action. Ces outils seront nos alliés tout au long du
processus de développement, nous guidant vers la concrétisation de notre projet.
46
Chapitre 5
Réalisation
47
5 Mise en œuvre
Cette section a pour objectif de donner une présentation des écrans du système
développé.
5.1 Sandbox-UI
La Sandbox-UI est dédiée aux clients ainsi qu'aux collaborateurs internes et externes,
leur permettant de se connecter pour explorer et tester les API développées par HPS. Elle sert
de plateforme sécurisée, permettant aux utilisateurs de simuler divers scénarios d'utilisation des
API sans impacter l'environnement de production.
48
5.1.2 L’interface Login
49
5.1.4 L’interface produits
50
5.1.5 L’interface product release
La figure 38 ci-dessous illustre la page des product releases. Où nous trouverons des
informations sur les versions réalisées jusqu'à présent.
51
5.1.7 L’interface Module
La figure 40 ci-dessous illustre la page des Modules de chaque solution présentée dans
la figure 39.
52
5.2 Sandbox-Admin
La Sandbox-Admin est dédiée aux administrateurs, offrant un panel complet pour la
gestion des APIs, des utilisateurs, des produits, des produits releases et modules. Elle permet
aux administrateurs d'ajouter de nouvelles APIs, de gérer les comptes utilisateurs et gérer tous
les composants de l’application.
53
Figure 42 - l'interface product release sandbox-admin
54
Figure 44 - l'interface module sandbox-admin
La figure 47 ci-dessous présente la page d'ajout d'un utilisateur. Cette page permet à
l'administrateur de créer de nouveaux utilisateurs en saisissant leurs informations et en activant
leurs comptes.
55
Figure 46 - L'interface d’ajout d’un utilisateur sandbox-admin
56
Figure 48 - L'interface de suppression d’un utilisateur sandbox-admin
Conclusion
En conclusion, ce chapitre a présenté les interfaces utilisateur de la solution
PowerCARD ainsi que les résultats obtenus durant la phase de réalisation du projet. Des
captures d'écran illustrant les différentes fonctionnalités de l'application sont également
incluses pour offrir une meilleure compréhension de l'outil et de ses capacités.
57
Conclusion générale
En conclusion, ce projet de fin d’étude a permis de mettre en évidence
l'importance cruciale des APIs dans le développement logiciel moderne. En se
concentrant sur l'optimisation de la Sandbox ConnectAPI, nous avons réussi à créer un
espace administratif intuitif, facilitant la gestion des documentations d'API et offrant
une personnalisation avancée des espaces clients. Grâce à une interface graphique
flexible et conviviale, les administrateurs peuvent désormais gérer les APIs de manière
efficace et adapter l'interface aux besoins spécifiques de chaque client.
Ce rapport a été structuré en cinq chapitres pour offrir une vue complète du
projet. Le contexte général a posé les bases en définissant le cadre, les objectifs et les
enjeux du projet. Les spécifications et l'analyse ont permis d'identifier les limitations de
l'environnement actuel et de reformuler précisément la problématique à résoudre.
L'étude conceptuelle a présenté les solutions envisagées pour répondre à cette
problématique, tandis que l'architecture technique a détaillé les technologies et la
structure logicielle et matérielle mises en place. Le chapitre de mise en œuvre a illustré
les étapes de développement et les défis relevés.
En évaluant les réalisations du projet par rapport aux objectifs initiaux, il apparaît
clairement que les améliorations apportées ont significativement optimisé la gestion des
APIs et renforcé l'interopérabilité et la modularité des systèmes logiciels. Pour l'avenir,
les perspectives d'évolution incluent l'intégration de nouvelles fonctionnalités et
l'amélioration continue de l'interface utilisateur pour répondre aux besoins en constante
évolution des développeurs et des utilisateurs finaux. Ce projet souligne la dynamique
d'innovation et de collaboration essentielle à l'ère des APIs, ouvrant la voie à de
nouvelles opportunités dans le domaine du développement logiciel.
58
Webographie
Le site hps des apis : [Link]
shadcn : [Link]
flyway : [Link]
open api docs : [Link]
59