Académique Documents
Professionnel Documents
Culture Documents
je tiens à vous remercier du fond du cœur, chers parents et toutes les personnes qui
m’ont encouragé .
Hedy Fathallah
i
Dédicaces ii
À mes parents.
En premier lieu, nous remercions Dieu, le tout-puissant pour ses faveurs et ses grâces,
de nous avoir donné le courage et la patience de mener ce travail.
Nous tenons également à exprimer notre sincère gratitude et nos remerciements à notre
encadrante académique, Madame Marwa Abdelhafidh pour sa disponibilité, sa pa-
tience et les conseils qu’elle nous a généreusement prodigués tout au long de la réalisation
de ce travail de fin d’études.
Nous remercions toute l’équipe Quetratech pour leur soutien contenu et leur encoura-
gement durant la réalisation de ce projet.
Enfin, nous tenons à exprimer notre profonde gratitude envers l’ensemble de nos ensei-
gnants et de tout le personnel de l’Institut Supérieur d’Informatique de Mahdia, ainsi
qu’envers les membres du jury Madame Raja Fdhila et Madame Imen Toumia qui
ont accepté d’évaluer notre humble projet.
iii
Table des matières
Dédicaces i
Remerciements iii
Introduction générale 1
1 Contexte général 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . 4
1.2.3 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Etude et critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Choix de la méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Langage de conception . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Architecture utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . 12
1.7.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.3 Technologies utilisées . . . . . . . . . . . . . . . . . . . . . . . . . . 15
iv
Table des matières v
1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Conclusion et perspectives 69
Table des figures
vii
Table des figures viii
ix
Introduction générale
Dans les années 90, l’émergence des premiers sites Internet destinés au grand public
a permis aux entreprises de réaliser l’importance des connexions avec les clients pour
découvrir de nouveaux produits et de nouvelles façons de naviguer, comparer et acheter
des produits en quelques clics seulement. Cela a initié une évolution importante vers le
déplacement des transactions commerciales vers la voie virtuelle de l’internet.
De nos jours, il est devenu essentiel pour toutes les entreprises d’avoir une présence
en ligne afin de développer rapidement leur activité et d’atteindre un public plus large de
clients et de consommateurs actifs. Cette présence en ligne est indispensable pour aug-
menter leur base de communauté et favoriser leur croissance.
En Tunisie, les ventes en ligne ont connu une croissance significative ces dernières an-
nées. Les entreprises de livraison ont besoin d’une solution de gestion de livraisons pour
améliorer la visibilité de leurs services et la qualité de leur relation avec les clients.
Dans cette perspective, s’inscrit notre projet de fin d’études qui vise à la conception et
le développement une solution de gestion des livraisons pour les entreprises en ligne. Cette
solution vise à faciliter la gestion des flux de travail, à améliorer l’efficacité du processus
de livraison et à augmenter la satisfaction des clients.
1
Introduction générale 2
Contexte général
Contexte général 4
1.1 Introduction
QuetraTech (dont l’illustration de son logo est présentée dans la figure 1.1) est une
équipe complète de conception et de développement, possédant une expertise avérée dans
la création d’applications Web complexes, de sites e-commerce, d’applications mobiles,
de solutions IoT et d’image de marque. Depuis 2020, QuetraTech propose une gamme
complète de services de conception, développement, marketing et internet des objets pour
répondre aux besoins des marques émergentes.
Contexte général 5
1.2.3 Problématique
Pour élaborer une solution compétitive, nous procéderons à une étude préliminaire
afin d’évaluer les solutions informatiques actuellement en place. Cette étape revêt une
importance cruciale pour comprendre les besoins des clients et définir les objectifs à at-
teindre. De plus, elle nous permettra d’évaluer les logiciels existants et de déterminer leurs
avantages et inconvénients respectifs.
— Bringg : (dont la page d’accueil apparait dans la figure 1.2) est une plateforme
de gestion de livraisons offrant des fonctionnalités telles que le suivi en temps réel,
l’optimisation des itinéraires, la communication avec les clients et la gestion des
tâches.
Contexte général 6
— Route4me : (dont la page d’accueil est illustrée par la figure 1.3) est une solution
Web et mobile qui fournit une optimisation d’itinéraire en temps réel, un suivi GPS
et une planification de livraison à arrêts multiples.
— Instacart : (dont la page d’accueil est visible dans la figure 1.4) est un service de
livraison d’épicerie à la demande.
Contexte général 7
Dans le tableau suivant, nous avons fait une étude comparative de ces trois solutions
en mentionnant leurs points forts et leurs points faibles :
Instacart - Les clients peuvent suivre leur - Instacart n’est disponible que
commande en temps réel. dans certaines zones géogra-
-Possibilité de commander des phiques, ce qui peut limiter sa
courses auprès d’une variété de portée pour certains clients.
magasins différents. - Seuls les produits d’épicerie
sont disponibles.
Après avoir effectué une étude comparative des différentes solutions existantes et
compte tenu à leurs limites, il est apparu crucial de proposer une solution. En fait, les
clients auront la possibilité de commander plusieurs produits auprès de différents vendeurs
et de les recevoir en une seule livraison. Par la suite, notre solution permet essentiellement
de :
— La gestion des utilisateurs : permet d’ajouter, modifier et supprimer des utilisateurs
tout en gérant de manière optimale les droits d’accès qui leur sont accordés.
— La gestion des produits : permet à chaque gérant (vendeur) de créer, modifier,
Contexte général 9
Dans cette partie, nous allons présenter la méthodologie de travail choisie. Nous avons
décidé d’appliquer la méthode Agile (Scrum [1]) tout au long du projet. La méthode Agile
est une approche itérative et collaborative de gestion de projet qui permet d’adapter le
développement en fonction des besoins et des retours des utilisateurs. Elle se base sur des
principes de communication et de collaboration entre les différents membres de l’équipe du
projet. L’objectif est de livrer rapidement des produits fonctionnels tout en étant capable
de répondre rapidement aux changements et aux évolutions du projet. Scrum est l’une des
méthodes agiles les plus populaires qui s’appuie sur des cycles de développement itératifs
et incrémentaux appelés « sprints ». La figure 1.5 illustre bien le processus Scrum.
Contexte général 10
Nous allons travailler avec UML [2] (Unified Modeling Language). Ce langage de mo-
délisation graphique (dont le logo est illustré par la figure 1.6) est conçu comme une
méthode normalisée de visualisation dans les domaines du développement logiciel et de
la conception orientée objet, et utilise des pictogrammes pour représenter les différentes
composantes des systèmes.
Contexte général 11
Le tableau suivant indique les caractéristiques des machines utilisées tout au long de
ce projet :
Contexte général 13
Mémoire vive 16 GB 8 GB
Dans cette partie, nous présentons la liste des environnements logiciels utilisés tout au
long du projet.
PlantUML [4] : PlantUML (dont le logo est illustré par la figure 1.8) est un langage
de description graphique utilisé pour créer des diagrammes UML. Il permet de générer
des diagrammes en utilisant une syntaxe textuelle simple et intuitive.
LaTeX [5] : LaTeX (dont le logo est illustré par la figure 1.9) est un système de
composition de documents destiné principalement à la création de documents techniques
et scientifiques, tels que des articles, des livres, des thèses et des présentations. Il utilise
des commandes de formatage pour structurer le texte.
Contexte général 14
Overleaf [6] : Overleaf (dont le logo est illustré par la figure 1.10) est un éditeur de
texte en ligne pour LaTeX qui permet aux utilisateurs de collaborer sur des projets de
documents en temps réel.
Visual Studio Code [7] : Visual Studio Code (dont le logo est illustré par la figure
1.11) est un éditeur de code source gratuit et open-source développé par Microsoft pour
Windows, Linux et macOS.
Git [8] : Git (dont le logo est illustré par la figure 1.12) est un système de contrôle
de version distribué gratuit et open-source.
Contexte général 15
GitHub [9] : GitHub (dont le logo est illustré par la figure 1.13) est une plateforme
en ligne de gestion de versions basée sur Git.
Postman [10] : Postman (dont le logo est illustré par la figure 1.14) est un outil de
collaboration et de test d’API qui facilite l’envoi de requêtes HTTP et HTTPS et l’analyse
des réponses.
Dans cette partie, nous présentons les différentes technologies choisies pour réaliser ce
projet.
Reactjs [12] : ReactJS (dont le logo est illustré par la figure 1.15) est une bibliothèque
JavaScript open-source développée par Facebook depuis 2013, utilisée pour la construction
Contexte général 16
d’interfaces utilisateur.
Node.js [13] : Node.js (dont le logo est illustré par la figure 1.16) est un environ-
nement d’exécution permettant aux développeurs de créer des applications côté serveur
avec JavaScript.
Express.js [14] : Express.js (dont le logo est illustré par la figure 1.17) est un fra-
mework de développement web Node.js minimaliste et flexible qui permet de créer des
applications web robustes et performantes.éer des applications côté serveur avec JavaS-
cript.
MongoDB [15] : MongoDB (dont le logo est illustré par la figure 1.18) est une base
de données NoSQL de type document orientée objet qui stocke les données sous forme de
documents JSON.
Contexte général 17
1.8 Conclusion
2.1 Introduction
Un acteur est une entité (personne, logiciel ou matériel) qui interagit avec le système.
Dans notre projet nous avons quatre acteurs :
— Administrateur : Il joue un rôle primordial pour assurer le bon fonctionnement
du système. Il prend en charge la gestion de tous ses aspects.
— Gérant : Il est responsable de la gestion des produits.
— Livreur : Il est responsable de la livraison des commandes.
— Client : Il est capable de passer des commandes et de les suivre.
Les prochaines sous-sections définissent les différents besoins fonctionnels et non fonc-
tionnels que notre application suit.
L’administrateur
— Se connecter en tant qu’administrateur
— Valider les comptes utilisateurs
— Gérer les listes des utilisateurs
— Gérer la liste de livraisons
— Afficher les statistiques
Sprint 0 : Analyse et spécification des besoins 20
Le gérant
— S’inscrire
— Se connecter en tant que gestionnaire
— Réinitialiser le mot de passe
— Recevoir des notifications de commandes
— Gérer les produits
Le livreur
— S’inscrire
— Se connecter en tant que livreur
— Réinitialiser le mot de passe
— Changer le statut de la livraison
— Voir l’historique des livraisons effectuées
Le client
— S’inscrire
— Se connecter en tant que client
— Réinitialiser le mot de passe
— Commander
— Gérer le panier
— Afficher les articles
— Suivre la commande
— Afficher l’historique des commandes
Ce sont les aspects et les comportements qui ne sont pas directement liés aux fonction-
nalités concrètes du produit. Ils sont des indicateurs de qualité de l’exécution des besoins
fonctionnels. Notre application garantit principalement :
— La convivialité : L’application doit être facile à utiliser. Elle doit fournir une
interface utilisateur simple et ergonomique.
Sprint 0 : Analyse et spécification des besoins 21
— L’extensibilité : L’application doit être flexible aux mises à jour et aux change-
ments de fonctionnalités.
— La performance : L’application doit être efficace avec un temps de réponse rapide.
— La sécurité : L’application doit être sécurisée. Elle doit assurer la confidentialité
et l’intégrité et contrôler l’accès aux données.
— La maintenance : Le code source doit être claire et compréhensible.
— La disponibilité : L’application doit être disponible en permanence et accessible
à tous les utilisateurs.
Le Backlog du produit est une liste des fonctionnalités requises dans le produit, ordon-
nées par ordre de priorité. Le tableau suivant représente le backlog du produit de notre
projet :
7 Passer une com- 7.1 - En tant que client, je peux passer une 3
mande commande.
Après avoir déterminé le backlog du produit, nous avons découpé notre projet en 3
sprints :
— Sprint 1 : Gestion des utilisateurs
— Sprint 2 : Gestion des produits
— Sprint 3 : Gestion des commandes et des livraisons
2.7 Conclusion
Dans ce chapitre nous avons détaillé les acteurs ainsi que les exigences fonctionnelles
et non fonctionnelles de notre projet. Nous avons présenté aussi le backlog du produit
suivi des diagrammes de cas d’utilisation et de classes globaux.
Chapitre 3
3.1 Introduction
Dans ce chapitre, nous allons aborder les fonctionnalités liées au premier sprint qui
se concentre sur la gestion des utilisateurs. Nous allons ainsi détailler la spécification
fonctionnelle, la conception et la réalisation.
Tâche Priorité
Administrateur - S’authentifier
- Réinitialiser le mot de passe
- Activer les comptes des gérants
- Activer les comptes des livreurs
- Supprimer un compte d’un utilisateur
Gérant - S’inscrire
- S’authentifier
- Réinitialiser le mot de passe
Livreur - S’inscrire
- S’authentifier
- Réinitialiser le mot de passe
Client - S’inscrire
- S’authentifier
- Réinitialiser le mot de passe
Dans cette section, nous allons élaborer d’avantage sur les cas d’utilisation du sprint
1 pour fournir une description détaillée des divers scénarios possibles.
— Le cas d’utilisation «S’inscrire»
Le tableau ci-dessous détaille le cas d’utilisation
Acteurs Administrateur
3.3 Conception
Au sein de cette section, nous allons exposer les diagrammes de séquences et le dia-
gramme de classes des fonctionnalités de ce sprint.
Sprint 1 : Gestion des utilisateurs 34
Le processus d’inscription du client n’est pas le même que celui du gérant ou livreur.
Nous allons représenter le diagramme de séquence de chacun d’eux. La figure 3.2 représente
le diagramme de séquence de l’inscription du client.
3.4 Réalisation
Dans cette partie, nous présentons une visualisation du travail accompli dans ce sprint.
Interface «Authentification»
L’utilisateur se connecte sur l’application à travers cette interface tout en introduisant
son email et son mot de passe.
3.5 Conclusion
4.1 Introduction
Dans ce chapitre, nous allons aborder les fonctionnalités liées au deuxième sprint qui
porte sur la gestion des produits. Nous allons ainsi détailler la spécification fonctionnelle,
la conception et la réalisation.
Tâche Priorité
Cette section est dédiée à une exploration plus approfondie des cas d’utilisation du
sprint 2, dans le but de fournir une description détaillée des différents scénarios envisa-
geables.
— Le cas d’utilisation «Ajouter un article»
Le tableau ci-dessous détaille le cas d’utilisation
Acteurs Gérant
Acteurs Gérant
Acteurs Client
4.3 Conception
Au sein de cette section, nous allons exposer les diagrammes de séquences et le dia-
gramme de classes des fonctionnalités de ce sprint.
4.4 Réalisation
Dans cette section, nous présentons le travail effectué dans ce sprint à travers des
captures d’écran.
Interface «Shop»
Cette interface est partagée entre le client et le gérant avec quelques différences. Le client
peut consulter tous les produits disponibles, ainsi que le gérant peut consulter et gérer
ses propres produits.
Sprint 2 : Gestion des produits 54
Interface «Panier»
Le client peu consulter et gérer son panier à travers cette interface. Il est aussi invité à
remplir un petit formulaire avant de passer sa commande.
Sprint 2 : Gestion des produits 55
4.5 Conclusion
5.1 Introduction
Tâche Priorité
Dans cette section, nous allons élaborer davantage sur les cas d’utilisation du sprint 3
pour fournir une description détaillée des divers scénarios possibles.
— Le cas d’utilisation «Passer une commande»
Le tableau ci-dessous détaille le cas d’utilisation
Acteurs Client
Acteurs Administrateur
5.3 Conception
Au sein de cette section, nous allons exposer les diagrammes de séquences et le dia-
gramme de classe des fonctionnalités de ce sprint.
son»
5.4 Réalisation
Cette section est consacrée à la visualisation du travail réalisé dans ce sprint, présenté
sous forme de captures d’écran.
5.5 Conclusion
À la fin de ce rapport, nous pouvons conclure que la réalisation de notre projet Mar-
ketplace avec système de gestion de livraisons intégré a été une expérience enrichissante
et formatrice. Grâce à notre stage et à l’application des connaissances théoriques acquises
tout au long de notre parcours d’études en informatique, nous avons pu concevoir et
développer une solution complète.
Ce projet nous a permis de mettre en pratique nos compétences en développement
web, en utilisant des technologies modernes et en adoptant une approche agile de gestion
de projet, notamment en suivant la méthodologie SCRUM.
Cependant, malgré les fonctionnalités déjà implémentées, notre projet reste évolutif
et offre de nombreuses perspectives d’amélioration. Nous envisageons d’intégrer des fonc-
tionnalités supplémentaires, telles qu’un système de suivi en temps réel des livraisons, des
notifications personnalisées pour les utilisateurs, ainsi que des fonctionnalités d’analyse et
de génération de rapports pour l’administrateur.
En conclusion, ce projet nous a permis de consolider nos compétences techniques, de
mettre en pratique nos connaissances et de nous familiariser avec les enjeux du dévelop-
pement d’une application web complète. Nous sommes fiers du résultat obtenu et nous
sommes convaincus que notre Marketplace avec système de gestion de livraisons intégré
sera une solution utile et efficace pour les entreprises cherchant à optimiser leur processus
de livraison.
69
References
70