Application SaaS pour Pressing avec DevOps
Application SaaS pour Pressing avec DevOps
Ce projet a pour objectif de développer une application SaaS innovante destinée à la gestion des
opérations d'un pressing. Conçue pour répondre aux besoins spécifiques des utilisateurs tout en
optimisant les processus internes, l'application repose sur une architecture moderne, divisée en
couches distinctes. Le frontend de l'application, développé en React, offre une interface
utilisateur réactive et intuitive. Le backend, construit avec Spring Boot, assure une gestion
robuste des transactions et une intégration fluide avec la base de données PostgreSQL. La
sécurité de l'application a été renforcée par l'implémentation du protocole OAuth2, garantissant
une authentification et une autorisation sécurisées des utilisateurs.
Un aspect clé de ce projet a été l'intégration des pratiques DevOps, qui ont joué un rôle crucial
dans l'amélioration de l'efficacité du cycle de développement et de déploiement. L'adoption d'un
pipeline CI/CD (Continuous Integration/Continuous Deployment) a permis d'automatiser les
processus de test, de validation, et de déploiement du code. Chaque modification apportée à
l'application est ainsi testée de manière exhaustive, ce qui garantit une haute qualité du code et
une rapidité de mise en production. L'utilisation d'outils comme Github Actions pour orchestrer
ce pipeline a permis d'assurer une livraison continue et fiable des nouvelles fonctionnalités avec
l’adoption du principe du GitOps, réduisant ainsi les délais et les coûts associés aux déploiements
manuels.
5
En conclusion, ce projet a non seulement abouti à la création d'une solution logicielle
performante pour la gestion des opérations d'un pressing, mais il a également démontré
l'efficacité des pratiques DevOps et de l'orchestration via Kubernetes pour garantir un
déploiement fiable, sécurisé et évolutif. Ces technologies ont été déterminantes pour atteindre les
objectifs du projet, en permettant une gestion agile et une amélioration continue du logiciel.
6
Sommaire
Dédicace ............................................................................................................ 2
Remerciements................................................................................................... 3
Avant-Propos ...................................................................................................... 4
Résumé .............................................................................................................. 5
Introduction Générale ....................................................................................... 13
1. Contexte ........................................................................................................ 14
2. Problématique ............................................................................................... 14
3. Objectifs ........................................................................................................ 14
Chapitre I : Méthodologie de Réalisation ............................................................ 16
1. Gestion des Processus Métier (BPM) ............................................................... 17
1.1 Introduction à la Gestion des Processus Métier (BPM) ............................... 17
1.2 Application de la BPM dans le Projet ......................................................... 17
1.3 Avantages de la BPM ................................................................................ 18
1.4 Exemple de Modélisation avec BPMN .................................................................19
1.5 BPM et SaaS : Une Synergie Naturelle ....................................................... 20
2. Méthodologie Agile Scrum............................................................................... 21
2.1 Sprints et Livrables .................................................................................. 22
2.2 Avantages de Scrum dans un Projet SaaS ................................................. 22
3. Diagramme de Gantt avec Plotly pour la Visualisation des Données.................. 23
3.1 Utilisation de Plotly pour un Projet SaaS ................................................... 23
3.2 Exemple de Diagramme de Gantt ............................................................. 24
Conclusion ........................................................................................................ 26
Chapitre II : Conception du Système .................................................................. 27
1. Conception de l'Architecture ........................................................................... 28
1.1 Frontend ................................................................................................. 28
1.2 Backend .................................................................................................. 29
1.3 Base de Données..................................................................................... 29
2. Conception UML : Diagramme de Classes ....................................................... 31
2.1 Diagramme UML de Classe ...................................................................... 31
2.2 Relations Entre les Classes ...................................................................... 32
Chapitre III : Développement et Intégration Continue (CI/CD).............................. 34
1. Pipeline CI/CD ................................................................................................ 35
1.1 Intégration Continue (CI) .......................................................................... 35
1.2 Déploiement Continu (CD) ....................................................................... 35
1.3 Outils Utilisés dans le Pipeline CI/CD ....................................................... 36
1.4 Implémentation de Github actions ........................................................................38
7
Pipeline Name and Triggers .......................................................................................41
Jobs: Build ..................................................................................................................42
1. Setup of Build Environment ..............................................................................42
2. Checkout Source Code ....................................................................................42
3. Setup Java ........................................................................................................42
4. Cache Maven Packages ...................................................................................43
5. Unit Tests .........................................................................................................43
6. Dependency Check ..........................................................................................44
7. Upload Dependency Check Report ..................................................................45
SonarQube Scan ........................................................................................................45
Docker Image Build and Push ....................................................................................47
8. Docker Hub Login ............................................................................................. 47
9. Build and Push Docker Image ..........................................................................47
Chapitre IV : Réalisation de l’Application et Présentation des Interfaces ......................53
1. Présentation des Interfaces Utilisateur .........................................................................54
1.1 Page de Connexion (Login) ..................................................................................54
1.2 Tableau de Bord (Dashboard) ..............................................................................54
1.3 Recherche de Commandes (Search Order) .........................................................56
1.4 Gestion des Commandes (Orders).......................................................................56
1.4 Création de Commandes (New Order) .................................................................57
1.5 Création de Clients (New Client) ..........................................................................57
1.6 Gestion des Employés (Administration) ............................................................... 58
1.7 Gestion des Services et des Prix (Administration) ...............................................58
Chapitre V : Tests et Validation .......................................................................... 59
1. Types de Tests Effectués ................................................................................. 60
1.1 Tests Unitaires ........................................................................................ 60
1.2 Tests d'Intégration ................................................................................... 60
1.3 Tests de Performance .............................................................................. 61
1.4 Tests de Sécurité ..................................................................................... 62
Chapitre VI : Gestion des Risques....................................................................... 63
1. Identification des Risques ............................................................................... 64
1.1 Risques Techniques................................................................................. 64
1.2 Risques de Sécurité ................................................................................. 65
1.3 Risques de Dépendances ........................................................................ 66
1.4 Risques Organisationnels ........................................................................ 66
1.5 Risques liés aux Utilisateurs..................................................................... 66
2. Évaluation et Surveillance des Risques ............................................................ 66
2.1 Matrice d'Évaluation des Risques ............................................................. 67
2.2 Surveillance Continue.............................................................................. 67
Chapitre VII : Retour d'Expérience (Rétrospective) .............................................. 68
1. Leçons Apprises ............................................................................................. 69
1.1 Ce qui a Bien Fonctionné ......................................................................... 69
8
1.2 Ce qui Peut Être Amélioré ........................................................................ 69
2. Prochaines Étapes .......................................................................................... 70
2.1 Évolutions Futures ................................................................................... 70
2.2 Maintenance et Support ........................................................................... 71
Conclusion Générale ......................................................................................... 72
Bibliographie & Webographie ............................................................................. 74
1. Outils et Technologies .................................................................................... 75
2. Méthodologies................................................................................................ 76
3. Développement et Sécurité ............................................................................. 76
9
Liste des Tableaux
10
Liste des Figures
11
Rapport de Projet de Fin d'Études
12
Introduction Générale
13
1. Contexte
2. Problématique
Les pressings traditionnels rencontrent de nombreux défis liés à la gestion
manuelle des opérations, tels que des erreurs dans la gestion des commandes, des
retards, et une communication inefficace avec les clients. L'absence de systèmes
centralisés et automatisés conduit souvent à une diminution de la satisfaction
client et à des inefficacités opérationnelles. De plus, les solutions actuelles sur
site nécessitent des ressources importantes pour la maintenance et la mise à jour.
Une solution SaaS permet de surmonter ces défis en offrant une plateforme
centralisée, accessible en ligne, qui automatise et optimise les processus clés, tout
en réduisant les coûts liés à l'infrastructure et à la maintenance.
3. Objectifs
Les principaux objectifs de ce projet sont :
14
- Développement d'une application web SaaS : Concevoir et implémenter une
application permettant de gérer l'ensemble des opérations d'un pressing via une
plateforme en ligne, accessible depuis n'importe quel appareil connecté.
- Sécurité des données : Implémenter des mesures de sécurité robustes, telles que
l'authentification OAuth2, le chiffrement des données, et la protection contre les
attaques, afin de sécuriser les informations sensibles des utilisateurs sur le cloud.
- Interface utilisateur intuitive : Développer une interface utilisateur réactive et
conviviale, qui facilite l'interaction des utilisateurs finaux et des administrateurs
avec l'application SaaS.
- Méthodologie Agile (Scrum) : Utiliser la méthodologie Scrum pour gérer le
projet, permettant une progression itérative, une livraison continue des
fonctionnalités et une adaptation rapide aux besoins des utilisateurs.
15
Chapitre I : Méthodologie de Réalisation
16
1. Gestion des Processus Métier (BPM)
17
exigences métiers en modèles visuels, facilitant ainsi la compréhension et
l'optimisation des processus.
- Exemple d'Utilisation de Bizagi : Par exemple, le processus de gestion des
commandes a été modélisé dans Bizagi pour inclure toutes les étapes, depuis la
création d'une commande jusqu'à sa livraison. Le diagramme généré a servi de
référence tout au long du développement pour assurer que chaque étape du
processus était bien couverte par l'application SaaS.
18
1.4 Exemple de Modélisation avec BPMN
- Pour illustrer l’application de la Gestion des Processus Métier (BPM) dans notre
projet, nous avons modélisé le processus de gestion des commandes en utilisant
un diagramme BPMN réalisé avec Bizagi. Le BPMN (Business Process Model
and Notation) est un standard pour représenter graphiquement les processus
métier, permettant une compréhension claire et partagée des opérations à travers
différents acteurs du système.
19
2 - Workflow de la collecte des articles par le client depuis le pressing shop.
20
2. Méthodologie Agile Scrum
21
2.1 Sprints et Livrables
- Sprints : Le projet SaaS a été organisé en sprints de deux semaines, avec chaque
sprint visant à livrer un ensemble spécifique de fonctionnalités. Les premiers
sprints ont été axés sur le développement des fonctions de base, telles que
l'authentification des utilisateurs et la gestion des commandes. Les sprints
suivants ont intégré les fonctionnalités avancées et les aspects de sécurité liés au
modèle SaaS.
- Réunions Quotidiennes : Des réunions quotidiennes ont été organisées pour
évaluer les progrès réalisés, identifier les obstacles, et ajuster les priorités selon
les besoins. Ces réunions ont permis de maintenir un rythme de travail soutenu et
coordonné, essentiel dans un projet SaaS où la rapidité de livraison est cruciale.
- Rétrospectives : À la fin de chaque sprint, une rétrospective a été réalisée pour
analyser ce qui a bien fonctionné et ce qui doit être amélioré. Cette approche
itérative a permis d'affiner les processus de développement et d'améliorer
continuellement la qualité du produit.
22
- Amélioration Continue : Les rétrospectives régulières ont joué un rôle clé dans
l'amélioration continue des processus de développement, garantissant ainsi la
qualité et la fiabilité de l'application SaaS.
3. Diagramme de Gantt
23
Figure 4 : Diagramme de Gantt
24
Figure 5: Diagramme de Gantt avec plotly
Conclusion
25
Chapitre II : Conception du Système
26
1. Conception de l'Architecture
1.1 Frontend
27
communication avec le backend via des appels API RESTful. La conception
responsive garantit que l'application est accessible depuis différents appareils, y
compris les smartphones et les tablettes.
1.2 Backend
28
2. Conception UML : Diagramme de Classes
29
Figure 8 : Diagramme de Cas d’utilisation
30
Figure 10 : Diagramme de Séquences pour la Gestion des Employés (pour un Administrateur
ou Propriétaire)
31
- Permissions: La classe Permissions gère les autorisations spécifiques qui
déterminent ce qu’un utilisateur peut faire dans le système. Chaque permission
est liée à un ou plusieurs rôles via Permissions_Roles.
- Shops: La classe Shops représente les différents magasins de pressing. Elle
inclut des attributs comme name, adress, city, et phone. Chaque magasin peut
avoir plusieurs utilisateurs associés (employés ou administrateurs) à travers la
relation avec la classe Users.
- Items: La classe Items représente les articles (vêtements ou autres) pris en
charge par le pressing. Les attributs incluent type, material, color, et note. Chaque
article peut être inclus dans une commande via la relation avec Items_Orders.
- Services: La classe Services décrit les services proposés par le pressing (par
exemple, lavage, repassage, nettoyage à sec). Elle contient des attributs tels que
name, price, et description. Chaque service peut être lié à un ou plusieurs articles
et commandes via Items_Orders.
- Items_Orders: Cette classe intermédiaire gère la relation many-to-many entre
Orders, Items, et Services. Elle inclut des attributs tels que items_id, orders_id,
services_id, et note. Cela permet de relier plusieurs articles et services à une
commande spécifique.
- Permissions_Roles: La classe Permissions_Roles gère la relation many-to-many
entre les Roles et les Permissions. Cela permet d’attribuer plusieurs permissions
à chaque rôle dans le système, en définissant clairement les droits des utilisateurs.
Résumé des Relations :
- Users est lié à Roles (chaque utilisateur a un rôle) et Shops (chaque utilisateur
peut travailler dans un magasin).
- Orders est lié à Users (une commande est gérée par un utilisateur) et à
Items_Orders (pour lier des articles et services à une commande).
- Items_Orders relie Items, Orders, et Services, créant une relation many-to-many
entre eux.
- Roles et Permissions sont reliés via une table intermédiaire Permissions_Roles.
32
Chapitre III : Développement et Intégration
Continue (CI/CD)
33
1. Pipeline CI/CD
Figure 11 : Pipeline CD avec les differentes étapes depuis le commit vers le déploiment en
automatique en production
34
- Analyse Statique du Code : Des outils d'analyse statique du code, tels que
SonarQube, sont intégrés au pipeline CI pour identifier les problèmes de qualité
du code, les vulnérabilités de sécurité, et les violations des bonnes pratiques de
programmation. L'analyse statique permet d'identifier les erreurs potentielles
avant même que le code ne soit exécuté, ce qui contribue à améliorer la qualité
globale du logiciel.
- Github : nous avons utilisé GitHub comme Git Provider pour la gestion du code
source. en créant une organisation nommée pressingshop pour centraliser et
structurer les différents repositories. GitHub offre une plateforme fiable et
largement adoptée, facilitant la collaboration grâce aux pull requests, à la gestion
des branches, et aux intégrations continues avec des outils comme GitHub
35
Actions. De plus, il permet un suivi efficace des modifications et des
contributions, tout en garantissant la sécurité du code avec des options de gestion
des accès et des permissions. Les captures d'écran ci-dessous illustrent son
utilisation dans notre flux de travail.
36
Kubernetes, assurant une intégration continue optimisée et un suivi qualité
rigoureux.
- GitOps: est une approche moderne de gestion des infrastructures et des
déploiements applicatifs qui repose sur l'utilisation de Git comme source unique
de vérité. En GitOps, l'ensemble de la configuration de l'infrastructure et des
applications est versionné et stocké dans un dépôt Git, permettant ainsi un suivi
des changements clair et auditable. Les modifications apportées à l'infrastructure
sont effectuées via des pull requests, et on a utilisé ArgoCD pour synchroniser
automatiquement l'état du cluster avec celui défini dans le dépôt Git. Cela garantit
une livraison continue fiable, en évitant les divergences entre l'état souhaité et
l'état réel, tout en améliorant la sécurité et la collaboration au sein des équipes
DevOps.
Pour configurer github actions il suffit de définir des workflows sous forme de
fichiers YAML dans le répertoire .github/workflows de notre projet. Ces
workflows peuvent être déclenchés par des événements spécifiques comme un
push, une pull request ou un tag. Chaque workflow décrit une série de jobs qui
s'exécutent dans des environnements virtuels, dans notre cas on a pas utilisé
notre propre runner, on a garder celui de Github
name: Pipeline
37
Explication : Le pipeline est nommé simplement "Pipeline". Ce nom est
purement descriptif et permet d'identifier le processus d'intégration continue
(CI).
Jobs: Build
runs-on: ubuntu-latest
name: Build
Explication : Cette étape utilise l'action checkout pour récupérer le code source
du dépôt GitHub afin qu'il soit disponible localement pour les étapes suivantes.
Cela permet de préparer le contexte de travail.
3. Setup Java
38
Explication : Cette étape installe la version Java 17, en spécifiant la distribution
Temurin, qui est un environnement d'exécution Java (JDK) très répandu et
performant. Le paramètre cache: maven optimise le processus en mettant en
cache les dépendances Maven, réduisant ainsi le temps de construction.
5. Unit Tests
Explication : Cette étape exécute Maven pour effectuer une compilation et une
installation des modules, Cette configuration est utile pour valider le processus
de compilation dans le cadre d'une construction rapide. L'exécution est
conditionnée par un push ou un pull_request, ainsi execute les test unitaire.
6. Dependency Check
SonarQube Scan
39
Explication : SonarQube est utilisé ici pour effectuer une analyse de la qualité
du code. Il vérifie les bugs potentiels, les vulnérabilités, et les mauvaises
pratiques dans le code. Un certificat SSL est importé pour sécuriser les
communications avec le serveur SonarQube. L'analyse est réalisée via Maven
avec la commande sonar:sonar. Les informations d'authentification sont fournies
à l'aide de secrets stockés dans GitHub.
40
Explication : Cette étape utilise l'action officielle Docker pour se connecter à
Docker Hub en utilisant les identifiants fournis via les secrets GitHub
(DOCKERHUB_USERNAME et DOCKERHUB_TOKEN). Cela est nécessaire
pour pouvoir pousser des images Docker dans le registre.
Explication : Cette étape utilise le plugin Jib pour construire une image Docker
sans avoir besoin d'un Dockerfile, directement à partir du projet Maven. L'image
générée est ensuite poussée dans Docker Hub sous l'étiquette latest. Cela permet
de rendre l'image disponible pour déploiement ou utilisation dans un
environnement de production ou de test.
Le script utilise également des options comme --prune et --force pour supprimer
les ressources inutilisées et forcer le déploiement des mises à jour. L’option --
41
insecure permet de contourner la validation de sécurité, principalement dans des
environnements non critiques.
42
L’interface de Argocd avec les différents workloads déployé.
Pour arriver à ce stade on installé Argocd sur notre cluster Kapsule de Scaleway
sur un namespace argocd, puis on a créer un namespace avec la commande kubect
create ns dev-pressing, et puis on entame la configuration de ArgoCD.
On crée d’abord notre projet sur argocd, puis on crée une application dans ce
dernier, et on connecte cette application à un répositories sur notre repository
github avec un path bien défini de notre workloads.
43
Figure 16 : Projet ArgoCD
44
Figure 18 : Structure du projet Gitops ( Kustomize )
45
Figure 19 : Documentation des api avec Swagger
46
1. Présentation des Interfaces Utilisateur
47
Figure 20 : Page d’authentification
Le tableau de bord donne un aperçu général des opérations en cours, incluant les
commandes en attente, les statistiques de performance, et les alertes importantes.
Il permet aux administrateurs et aux employés de gérer efficacement les activités
quotidiennes.
48
Figure 21 : Dashboard de suivi
49
Figure 22 : Gestion des commandes.
50
1.5 Création de Clients (New Client)
51
Chapitre V : Tests et Validation
52
1. Types de Tests Effectués
- Couverture des Tests : Les tests unitaires ont été écrits pour couvrir la majorité
des composants de l'application, en particulier ceux du backend. L'objectif était
de vérifier que chaque composant fonctionne correctement en isolation. Une
couverture de test élevée est essentielle pour réduire les risques de régression lors
des modifications du code.
- Outils utilisés : JUnit a été utilisé pour les tests unitaires du backend, tandis que
Jest a été utilisé pour tester les composants React du frontend. Ces outils
permettent de structurer les tests, de les exécuter de manière automatisée, et de
générer des rapports de couverture.
- Scénarios de Test : Les tests d'intégration ont été effectués pour vérifier que les
différents modules de l'application interagissent correctement entre eux. Par
exemple, les tests ont vérifié que les appels API entre le frontend et le backend
renvoient les réponses attendues. Les scénarios de test d'intégration incluent des
cas où plusieurs services doivent travailler ensemble pour accomplir une tâche.
- Environnements de Test : Les tests d'intégration ont été exécutés dans un
environnement de test qui reproduit aussi fidèlement que possible
l'environnement de production. Cela inclut l'utilisation de bases de données
53
réelles, de configurations de réseau similaires, et de conditions de charge
représentatives.
- Objectifs des Tests de Performance : Les tests de performance ont été réalisés
pour évaluer la capacité de l'application à gérer des charges élevées, telles qu'un
grand nombre de requêtes simultanées ou des volumes de données importants.
L'objectif est de s'assurer que l'application reste réactive et stable même sous des
conditions de charge élevée.
- Outils Utilisés : JMeter a été utilisé pour simuler des charges sur l'application et
mesurer les temps de réponse, la consommation des ressources, et le
comportement sous stress. Les résultats des tests de performance ont été utilisés
pour identifier les goulots d'étranglement et optimiser les performances de
l'application.
Temps de 100
réponse utilisateurs 1.2 secondes < 2 secondes Réussi
(latence) simultanés
Chargement
Utilisation de 1000 75% d’utilisation
< 80% Réussi
de la CPU commandes de la CPU
en 1 minute
54
Utilisation 500
de la requêtes par 850 Mo < 1 Go Réussi
mémoire minute
Temps de
200
traitement
commandes 3.5 secondes < 4 secondes Réussi
des
simultanées
commandes
500
Test de utilisateurs
Système stable,
montée en simultanés Stable Réussi
aucune erreur
charge pendant 10
min
55
Chapitre VI : Gestion des Risques
56
1. Identification des Risques
La gestion des risques est une composante essentielle de tout projet logiciel, en
particulier dans le contexte du développement d'une application SaaS où les
données des utilisateurs sont sensibles et où la disponibilité du service est critique.
Voici les principaux risques identifiés au cours du projet, ainsi que les stratégies
mises en place pour les atténuer.
Stratégie
Risque Probabilité Impact
d’atténuation
Mettre en place un
Défaillance du système de
Moyenne Critique
serveur sauvegarde et de
redondance
57
Prévoir des périodes
Changements dans d’ajustement et
Moyenne Modéré
les exigences sprints
supplémentaires
Planifier la
réallocation des
Manque de
Moyenne Important ressources ou
ressources
envisager
l’externalisation
58
requêtes SQL. Utilisation de l'auto scaling dans le cloud pour ajuster
automatiquement les ressources en fonction de la demande.
- Attaques par DDoS : Les attaques par déni de service distribué (DDoS) peuvent
rendre l'application inaccessible en surchargeant les serveurs avec un trafic
malveillant.
- Stratégie d'Atténuation : Utilisation de services de protection DDoS fournis par
les fournisseurs de cloud, ainsi que la mise en place de stratégies de limitation de
débit et de filtrage du trafic pour atténuer l'impact de telles attaques.
59
1.4 Risques Organisationnels
- Retards dans les Sprints : Des retards dans l'achèvement des sprints peuvent
entraîner des dépassements de délais et une mise en production retardée.
- Stratégie d'atténuation : Suivi rigoureux des jalons du projet à l'aide du
diagramme de Gantt et des outils de gestion de projet. Mise en place de sprints de
rattrapage pour compenser les retards et ajustement des priorités en fonction de
la situation.
L'évaluation continue des risques est cruciale pour ajuster les stratégies
d'atténuation et réagir rapidement à toute menace émergente. Voici comment les
risques ont été surveillés et gérés tout au long du projet.
Une matrice des risques a été utilisée pour évaluer la probabilité et l'impact de
chaque risque. Chaque risque a été classé selon son niveau de criticité (faible,
60
moyen, élevé), et des plans d'action spécifiques ont été définis pour les risques les
plus critiques.
- Tableau de Bord des Risques : Un tableau de bord a été mis en place pour
surveiller les risques en temps réel, avec des indicateurs clés de performance
(KPI) pour chaque risque identifié. Ce tableau de bord est régulièrement mis à
jour et discuté lors des réunions de projet.
- Revues de Risques : Des revues de risques régulières ont été organisées pour
réévaluer les risques existants, identifier de nouveaux risques, et ajuster les
stratégies d'atténuation en conséquence. Ces revues ont permis de maintenir une
vigilance constante sur les aspects critiques du projet.
61
Chapitre VII : Retour d'Expérience
(Rétrospective)
62
1. Leçons Apprises
- Planification des Ressources : Bien que les sprints aient été efficaces, une
meilleure planification des ressources aurait permis d'éviter certains goulots
d'étranglement, notamment dans les phases critiques du projet. Une analyse plus
63
approfondie des besoins en ressources au début de chaque sprint pourrait
améliorer encore la répartition des tâches.
- Gestion des Dépendances : La gestion des dépendances avec les services tiers
s'est avérée parfois complexe, en raison de la variabilité des services externes.
Une stratégie plus robuste de gestion des risques associés aux dépendances
pourrait inclure la planification de solutions alternatives plus détaillées et des tests
de résilience pour ces services.
- Formation Continue des Utilisateurs : Bien que des formations aient été
organisées, un programme de formation continue et de support aurait permis une
adoption encore plus fluide de l'application par les utilisateurs finaux. Des
webinaires réguliers ou des ateliers pratiques pourraient être mis en place pour
renforcer l'engagement des utilisateurs.
2. Prochaines Étapes
64
recommandations personnalisées aux utilisateurs est également une piste
prometteuse. Cela pourrait améliorer encore la satisfaction client en offrant des
services plus adaptés à leurs besoins individuels.
- Développement d'applications Mobiles : Afin de faciliter l’accès aux services,
des applications Android et iOS sont en cours de planification. Ces applications
permettront aux clients de consulter le statut de leurs commandes, de mettre à jour
leurs informations personnelles, et de recevoir des notifications push lorsque le
statut de leur commande est mis à jour. Si le client est un invité ou si l’application
n’est pas installée, une notification par SMS sera envoyée pour garantir que toutes
les informations importantes soient communiquées de manière efficace.
65
Conclusion Générale
66
Le projet de développement de cette application SaaS pour la gestion des
pressings a démontré l'importance d'une approche intégrée combinant la Gestion
des Processus Métier (BPM), la méthodologie Agile Scrum, et des outils
modernes de développement et de déploiement. Grâce à cette combinaison,
l'application a pu être développée et déployée avec succès, offrant aux utilisateurs
une solution robuste, sécurisée, et facile à utiliser pour la gestion quotidienne de
leurs opérations.
Les pratiques mises en œuvre tout au long du projet, notamment l'adoption d'une
architecture modulaire, l'automatisation des tests et des déploiements, et la
gestion proactive des risques, ont permis de garantir non seulement la qualité du
produit final, mais aussi la satisfaction des utilisateurs finaux. Le succès de ce
projet pose les bases d'une plateforme évolutive et adaptable, prête à accueillir de
futures évolutions technologiques et à répondre aux besoins changeants du
marché.
Le retour d'expérience a permis d'identifier les forces du projet ainsi que les
domaines où des améliorations sont possibles, offrant ainsi des perspectives pour
de futurs projets. Les prochaines étapes incluent l'extension des fonctionnalités
de l'application, l'intégration de technologies avancées comme l'IA, et
l'élargissement du périmètre d'application de la solution à d'autres secteurs.
67
Bibliographie & Webographie
68
1. Outils et Technologies
1.1 Plotly
- Plotly Technologies Inc., *Plotly Python Open Source Graphing Library*,
2021. Disponible en ligne : [Link]
- Plotly Technologies Inc., *Dash Enterprise User Guide*, 2021. Disponible en
ligne : [Link]
1.3 GitHub
- GitHub, *Using GitHub Repositories*, GitHub Documentation, 2023.
Disponible en ligne : [Link]
- GitHub, *GitHub Actions Documentation*, GitHub, 2023. Disponible en
ligne : [Link]
1.4 Bizagi
- Bizagi, Bizagi Modeler User Guide, Bizagi, 2021. Disponible en ligne :
[Link]
- Bizagi, Bizagi Documentation - Modélisation des Processus, Bizagi, 2022.
Disponible en ligne : [Link]
1.5 Online gantt
- Online Gantt - Create Gantt Charts Online.
Disponible en ligne : [Link]
69
1.6 swagger
- Site officiel : [Link]
1.7 kustomize
2. Méthodologies
2.1 Scrum
- [Link], *The Scrum Guide*, 2020. Disponible en ligne :
[Link]
- Atlassian, *What is Scrum?*, 2022. Disponible en ligne :
[Link]
2.2 Gantt
- Office Timeline, *Guide du Diagramme de Gantt*, 2022. Disponible en ligne
: [Link]
- Smartsheet, *What is a Gantt Chart?*, 2022. Disponible en ligne :
[Link]
70
3. Développement et Sécurité
3.1 React
- Meta (anciennement Facebook), *React: A JavaScript library for building user
interfaces*, Meta Open Source, 2021. Disponible en ligne : [Link]
- Meta, *React Documentation*, 2021. Disponible en ligne :
[Link]
3.4 PostgreSQL
- PostgreSQL Global Development Group, *PostgreSQL Documentation*,
2021. Disponible en ligne : [Link]
- DigitalOcean, *How To Install and Use PostgreSQL on Ubuntu*, 2021.
Disponible en ligne : [Link]
install-and-use-postgresql-on-ubuntu-20-04
71
- [Link], *OAuth 2.0 Authorization Framework*, 2022. Disponible en ligne
: [Link]
- OWASP, *OWASP Top Ten Security Risks*, 2021. Disponible en ligne :
[Link]
72