Rapport - Rami BEN HADJYAHYA - Ala AWADHI
Rapport - Rami BEN HADJYAHYA - Ala AWADHI
Rapport - Rami BEN HADJYAHYA - Ala AWADHI
Introduction générale
Des ventes de mains en mains, vers des ventes virtuelles, passent les priorités des
opérations de ventes des biens et des services, ce qui nous rend obligés de donner plus
d’importance à la vente électronique.
Les boutiques en ligne sont depuis des années, largement conseillées pour les sociétés
qui se basent sur la vente des produits et même des services. Ces types de sites web
représentent un dispositif global fournissant aux clients un pont de passage à l’ensemble des
informations, des produits, et des services à partir d’un portail unique en rapport avec son
activité.
Notre projet est réalisé dans le cadre du Projet de Fin d’Etudes ayant comme objectif
principal : la conception et le développement d’un site de type MarketPlace pour le compte
de TIT.
Ce rapport est composé de quatre chapitres :
Le premier chapitre consiste à présenter le cadre général du projet à travers la
présentation de la société d’accueil, une étude de l’existant suivie d’un aperçu de la
méthodologie adoptée.
Le deuxième chapitre présente la spécification et l’analyse des besoins.
Pour le troisième chapitre, il montre la conception de l’application à travers les
diagrammes UML.
Enfin, le quatrième chapitre présente l’environnement de réalisation de l’application,
le déploiement de l’application, les principales interfaces réalisées, un aperçu de
l’implémentation de l’application ainsi que la planification du projet.
Le rapport est clôturé par une conclusion qui synthétise notre travail.
1
CHAPITRE I : PRESENTATION DU CADRE DU PROJET
Introduction
Dans cette partie, nous allons faire une présentation de l’entreprise puis nous allons effectuer
une étude des Marketplaces existants, définir les grands axes de travail et désigner la
méthodologie à adopter.
I- Présentation de la société
Fondée en 2015, TIT est une SSII (Société de Services en Ingénierie Informatique) qui offre
ses solutions business basées sur le Cloud. Son but est l'augmentation significative de la
collaboration entre les agents et leur productivité, afin d’assurer un rapide RSI (Retour Sur
Investissement).
Nous avons effectué une étude comparative de 10 Marketplaces bien ancrés sur le marché du
E-commerce d’après « alexa.com » : site connu par fournir des statistiques sur le trafic du web
mondial, afin d’identifier les grands axes qui définissent un Marketplace et les points à
améliorer pour être plus compétitif. [11]
2
CHAPITRE I : PRESENTATION DU CADRE GENERAL DU PROJET
Ebay.com : C’est une entreprise américaine de courtage en ligne, connue par son site
web de ventes aux enchères du même nom.
Fnac.com : est une chaîne de magasins française spécialisée dans la distribution de
produits culturels (musique, littérature, cinéma, jeu vidéo) et électroniques (Hi-
fi, informatique, télévision), à destination du grand public.
Laredoute.com : C’est une enseigne française de vente à distance créée en 1837 par
Joseph Pollet. Multi-spécialiste en prêt-à-porter et décoration maison, La Redoute est le
deuxième vendeur d’habillement féminin et le troisième vendeur de linge de maison en
France.
PrimaCréa.com : C’est une plateforme pour acheter ou vendre des objets uniques et
faits main. [2]
L’analyse des sites existants a été élaborée sur deux axes, dans un premier temps, nous
avons décortiqué les données générales relatives aux plus grandes enseignes, puis nous
sommes passés à une analyse plus détaillée de quelques-unes de ces enseignes afin de
connaître leurs fonctionnements et leurs lacunes.
3
CHAPITRE I : PRESENTATION DU CADRE GENERAL DU PROJET
ALittle Primacr
Amazon Cdiscount Ebay Fnac Laredoute Pixmania ETSY Dawanda
Market éa
Visiteurs
(million/ 14.7 10.5 10 10.2 7.9 4.2 3.9 8.5 1.8 0.1
mois)
Commission
sur vente(en 5 à 15 4 à 13 5à9 8 à 12 Variable 7 à 12 3.5 5 variable gratuit
%)
Frais
d’abonnemen gratuit gratuit gratuit 10 € /
39 35 24.95 39.99 49.90 39.99
t par mois (en mois
€)
Nb catégories 23 21 30 20 14 39 12 11 11 10
Panier 90 110 54 60 90 200 N/D N/D N/D N/D
Frais
0.10 à
d’insertion Gratuit Gratuit Gratuit Gratuit Gratuit 0.20 Gratuit Gratuit Gratuit
0.15
produits
Monde : Monde :
Monde : Monde : Monde :
Classement Monde : Monde : Monde : 1539 Monde : 2207
25550 10578 10821
des sites par 4 775 18 France : 142 Allemagne N/D
Suisse : France : France :
popularité USA : 4 France : 20 USA : 8 56 USA : 42 :
289 531 329
113
Dans cette partie, une sélection de quelques sites a été faite afin d’identifier les détails qui les
caractérisent et qui ont un impact significatif sur leurs succès [3].
4
CHAPITRE I : PRESENTATION DU CADRE GENERAL DU PROJET
D’un autre côté, si nous nous approfondissons dans les détails, nous remarquons que plusieurs
fonctionnalités sont payantes, tous ces frais une fois cumulés nous montrent que l’utilisation
de ces sites devient assez rapidement assez onéreuse que ce soit pour le vendeur que pour
l’acheteur, nous citons à titre d’exemple, les frais d’abonnement au site, les commissions
excessives ou même les frais de transactions sur les payements. De cette analyse, nous avons
synthétisé en un seul tableau les grands axes qui définiront notre site pour qu’il puisse faire
face à la concurrence.
Présentation de PayPal
PayPal est un système de paiement en ligne permettant aux surfeurs du Web d'acheter en toute
sécurité sur Internet.
Principe : PayPal est en quelques sortes une banque virtuelle. L’utilisateur y dépose de
l'argent par chèque, ou par virement bancaire par exemple.
Ensuite, lorsque ce dernier souhaite acheter quelque chose sur Internet et que le site en
question propose de payer par PayPal, L’intéressé vire le montant de son achat directement
sur le compte du vendeur.
5
CHAPITRE I : PRESENTATION DU CADRE GENERAL DU PROJET
Le vendeur n'a plus qu'à faire l'opération inverse pour récupérer l'argent de son compte
PayPal. Bien entendu il peut le laisser sur son compte s'il souhaite à son tour acheter quelque
chose sur Internet.
Avantages de PayPal
Le paiement en ligne par PayPal est probablement le plus connu des services de paiement
par Internet dans le monde. Il peut donc jouer en faveur du vendeur qui veut vendre un
bien ou un service sur Internet. Si le visiteur a déjà un compte sur PayPal, il sera plus
disposé à acheter quelque chose que s'il doit encore s'inscrire sur un autre site qu'il ne
connaît pas.
Paypal permet le paiement direct par carte de crédit. Si le visiteur ne connaît pas le site, il
n'aura pas très confiance et ne souhaitera pas laisser son numéro de carte de crédit. Alors
qu'en passant par PayPal, il a la certitude que personne ne peut faire usage de sa carte de
crédit à son insu, puisque c'est PayPal qui gèrera la transaction.
PayPal est simple d'utilisation (pour le client qui achète).
4- Solution proposée
La synthèse qui découle de l’étude faite puise ces atouts dans les avantages de chaque site et
remédie aux lacunes de ces derniers, nous la présentons sous la forme d’un tableau qui
englobe les grands axes qui caractérisèrent notre site.
6
CHAPITRE I : PRESENTATION DU CADRE GENERAL DU PROJET
Nous avons opté pour le modèle en cascade comme modèle du cycle de développement
logiciel. Ce choix se base sur plusieurs avantages qui nous permettent de mieux contrôler
l’avancement du projet ; le développement répété offre une meilleure gestion des risques dans
la mesure où les développeurs identifient les grandes lignes du projet ou les priorités et de
concevoir un prototype basé sur ces informations, ensuite, ce prototype évolue au fur et à
mesure que le projet avance et il peut accueillir des changements à n’importe quel moment
sans mettre en péril l’avancement.
Conclusion
Dans ce chapitre, nous avons présenté la société d’accueil. Ensuite, nous avons mené une
étude et une critique de l’existant suivie d’une description de la solution proposée. Enfin, nous
avons présenté la méthodologie adoptée. Dans le chapitre suivant, nous procédons à la
spécification des besoins.
7
CHAPITRE II : SPECIFICATION DES BESOINS
Introduction
La spécification des besoins établit ce que notre MarketPlace doit fournir comme
fonctionnalités et les contraintes sous lesquelles il doit opérer.
Dans cette partie, nous allons faire une étude des besoins pour dégager les besoins
fonctionnels et non fonctionnels, puis nous détaillons les cas d’utilisations et les diagrammes
de séquences.
1- Besoins fonctionnels
Il s'agit des fonctionnalités du système d’un site de type MarketPlace. Les besoins
fonctionnels listent les opérations réalisables par notre application
- Consultation du site
Consulter les produits
Rechercher des produits par nom, catégorie, prix et boutique
Trier les résultats de recherche par date d’ajout et prix
Contacter un administrateur
Commenter un produit
- Accès au compte de l’abonné
S’inscrire.
Gérer son compte :
1- Modifier les informations personnelles.
2- Modifier ou récupérer le mot de passe
8
CHAPITRE II : SPECIFICATION DES BESOINS
9
CHAPITRE II : SPECIFICATION DES BESOINS
Une identification est une bonne considération des besoins non fonctionnels est tout aussi
importante et doit être bien étudiée afin d’assurer un bon fonctionnement du site.
Ces exigences se traduisent par :
Fiabilité :
L’application doit fonctionner de façon cohérente sans erreurs.
Gestion des erreurs :
Une gestion des erreurs est nécessaire dans un site pour pouvoir contrôler chaque erreur et
donner un sens à chacune. Concernant notre MarketPlace toutes les erreurs doivent être gérées
par des messages d’erreurs.
Ergonomie et simplicité :
C'est la capacité qu'aura le site à être pratique, fonctionnel quelles que soient les capacités de
l'internaute, son mode de consultation.
Sécurité :
Notre MarketPlace doit garantir une authentification sécurisée, un cryptage des informations
et une gestion des rôles des utilisateurs qui sont tous nécessaires pour garantir la sécurité des
informations de l’utilisateur.
Compatibilité :
Un site Internet peut être consulté par de nombreux outils différents, des ordinateurs aux
smart phones en passant par les tablettes ... Il est nécessaire de prendre en compte ces
nouveaux modes de consultation. En respectant les standards d’intégration (HTML5)
garantissant l’interopérabilité.
Pour mettre en évidence ces fonctionnalités, celles-ci seront illustrées par les diagrammes des
cas d’utilisation ainsi que les diagrammes de séquence.
Un cas d'utilisation définit une manière d'utiliser le système et permet d'en décrire les
exigences fonctionnelles.
10
CHAPITRE II : SPECIFICATION DES BESOINS
Un acteur est une personne, un matériel ou un logiciel qui interagit avec le système dans le
but de réaliser une plus value. [4]
Un internaute : C’est un utilisateur non authentifié qui peut seulement consulter le site,
s’inscrire et remplir son panier sans passer à la partie payement.
Un abonné : C’est un utilisateur authentifié qui a plus de privilèges que l’internaute
comme vendre et acheter des produits déposés dans le site.
Un administrateur : C’est un utilisateur qui est chargé de l’administration du site.
Un utilisateur : C’est un acteur fictif utilisé pour la modélisation et ne pouvant que
consulter et gérer son compte.
S'inscrire
Internaute <<include>>
Abonné <<include>>
S'authentifier
Commenter un
produit
<<include>>
Administrer le site
<<include>>
11
CHAPITRE II : SPECIFICATION DES BESOINS
Ce diagramme représente les activités globales de chaque utilisateur dans notre application.
Un administrateur a les mêmes activités qu’un abonné sauf l’achat et la vente des produits
mais il peut aussi administrer le site (voir diagramme détaillé « administration du site »).
12
CHAPITRE II : SPECIFICATION DES BESOINS
Rechercher par
nom
Rechercher par
Abonné Contacter un catégorie
administrateur
<<extend>>
Rechercher par
Rechercher
prix
produits
<<extend>>
Rechercher
par boutique
Utilisateur
<<extend>>
Visualiser les
Consulter le site
produits
Trier produits
Administrateur <<extend>>
Internaute
<<include>>
Editer la facture Payer
Acheter un produit
Abonné
<<include>>
<<include>> <<include>>
Gérer son
panier
Internaute
S'authentifier
<<extend>>
<<extend>>
<<extend>>
Changer la quatité
d'un ou de plusieurs
Supprimer un <<extend>>
produits
produit
Vider le panier
Ajouter un produit
13
CHAPITRE II : SPECIFICATION DES BESOINS
Pour acheter un produit, l’abonné doit ajouter le ou les produits à acheter dans son panier, il
peut ainsi modifier la quantité des produits ajoutés, vider son panier ou supprimer un produit
ajouté. Un abonné passe ensuite à l’étape de payement.
Un internaute peut aussi ajouter des produits dans son panier comme l’abonné mais il ne peut
passer à l’étape de payement que lorsqu’il s’authentifie.
Description textuelle :
Enchaînement alternatif :
A1 : Le panier est vide
L’enchaînement A1 démarre au point 5 du scénario nominal
5- Le système affiche un message d’erreur qui informe que le panier est vide.
Le scénario nominal reprend au point 1.
A2 : Les informations relatives au paiement sont erronées
L’enchaînement A2 démarre au point 7 de l’enchaînement nominal
7-Le système affiche un message d’erreur
14
CHAPITRE II : SPECIFICATION DES BESOINS
Supprimer sa
<<extend>> boutique
Ajouter une
boutique
<<extend>>
Modifier une
<<extend>> boutique
<<extend>> Supprimer un
produit
S'authentifier
<<include>>
Attribuer un prix
<<extend>> promotionnel à un
produit
Pour déposer un produit à vendre, un abonné doit avoir au moins une boutique associée à son
compte, sinon il doit en créer une, après il peut soit supprimer une de ses boutiques soit la
modifier. En consultant sa boutique, un abonné peut déposer autant qu’il veut de produits à
vendre, il peut ainsi modifier ses produits déjà déposés ou les supprimer ou leur attribuer des
prix promotionnels.
15
CHAPITRE II : SPECIFICATION DES BESOINS
Description textuelle :
Enchaînement alternatif :
A1 : La boutique n’existe pas
L’enchaînement A1 démarre au point 3 du scénario nominal
4- L’abonné demande d’ajouter une boutique
5- Le système affiche la page d’ajout d’une boutique.
6- L’abonné saisit les informations nécessaires pour l’ajout de sa boutique.
7- Le système affiche un message de confirmation d’ajout de la boutique.
Le scénario nominal reprend au point 4.
A2 : Les données du produit saisi sont erronées
L’enchaînement A2 démarre au point 6 du scénario nominal
7-Le système affiche un message d’erreur
Le scénario nominal reprend au point 4.
16
CHAPITRE II : SPECIFICATION DES BESOINS
Désactiver un
produit
<<extend>> <<extend>>
<<extend>>
<<extend>> Ajouter une
catégorie
Administrer le site
Administrateur
<<extend>> <<extend>> Modifier une
Gérer les catégories
catégorie
<<include>> S'authentifier
Visualiser l'historique
de toutes les ventes
Dans notre site, un administrateur peut supprimer un utilisateur, supprimer un produit ou une
boutique, consulter l’historique des ventes et des achats de tout les utilisateurs, gérer les
catégories des ventes des produits.
17
CHAPITRE II : SPECIFICATION DES BESOINS
<<include>>
Gérer son compte S'authentifier
Utilisateur
Administrateur
L’abonné et l’administrateur peuvent gérer leur compte en modifiant leur mot de passe ou en
modifiant leurs informations personnelles, ils doivent bien sûr être authentifiés pour accéder à
ces interfaces.
18
CHAPITRE II : SPECIFICATION DES BESOINS
Les diagrammes de séquences sont la représentation graphique des interactions entre les
acteurs et le système selon un ordre chronologique.
Systéme
Abonné
1: Saisir login et mot de passe
2: Vérification
6: Vérification
7: Accés à l'application
19
CHAPITRE II : SPECIFICATION DES BESOINS
Système
Abonné
1: Consullter les produits à vendre
3: Enregistrement de la commande ()
8: Confirmation de payement
En achetant un produit l’abonné doit pouvoir remplir son panier d’autant de produits qu’il
veut, puis confirmer et passer à l’étape de payement où il va insérer les informations
nécessaires pour son payement, une fois payé une facture est envoyée à son compte
comportant la liste des produits achetés et le montant total.
20
CHAPITRE II : SPECIFICATION DES BESOINS
DiagrammeSequence_1
Système
Abonné
3: Vérification
6: Message de confirmation
[sinon]
11: Ajout du produit
21
CHAPITRE II : SPECIFICATION DES BESOINS
Pour déposer un produit à vendre dans le site un abonné doit avoir au moins une boutique à
lui-même, sinon, il accède à l’interface d’ajout des boutiques et il y ajoute puis, il accède à
l’interface d’ajout de produit et il dépose son produit.
Conclusion
La spécification des besoins nous a permis de déterminer les principales fonctionnalités de
notre système à travers la présentation des besoins fonctionnels et non fonctionnels, les
diagrammes de cas d’utilisation et de séquences. Par la suite, il est indispensable de passer à
l’étape de conception.
22
CHAPITRE III CONCEPTION
Introduction
La conception est une phase importante dans la réalisation d'un projet. Elle permet de
décomposer le système en sous systèmes ce qui facilite la définition des phases
d'implémentation, de validation et de maintenance.
Dans ce chapitre, nous présentons le patron de conception de l’application, la conception
générale et la conception détaillée de l’application.
I- Conception générale
C’est un patron qui a été conçu au départ pour des applications « client lourd », dont la
majorité des données sont traitées sur le poste client. MVC était tellement puissant pour ces
applications « client lourd », qu’il a été massivement adopté comme modèle pour la création
d’applications web « client léger ». [5]
23
CHAPITRE III : CONCEPTION
MVC n’est pas associé à un langage de programmation, il peut être utilisé avec énormément
de langages. MVC est beaucoup utilisé avec PHP par exemple ou même JAVA. En général
MVC agit comme une couche supplémentaire (qu’on appelle un « Framework ») qui vient se
greffer par-dessus un langage. C’est le cas pour ASP.NET MVC qui est une couche
supplémentaire à ASP.NET. [5]
Concernant ses avantages, MVC permet également de concevoir des applications de manière
claire et efficace grâce à la séparation des intentions. Les opérations de maintenance et de
mise à jour sont fortement simplifiées, et on évite plus facilement le syndrome du plat de
spaghetti où la moindre modification à un endroit risque de provoquer des débordements à
d’autres endroits tellement tout est emmêlé.
MVC permet également de répartir plus facilement les tâches entre développeurs. Rares sont
les personnes qui sont capables de transformer des règles métiers complexes en code efficace
tout en étant expertes en design web, que ce soit pour PC, tablette, ou Smartphone… Le
découpage permet à un développeur de s’occuper des règles métiers complexes et à un
designer de faire du beau HTML ergonomique.
24
CHAPITRE III : CONCEPTION
2- Diagramme de paquetages
Dans ce projet, notre application se présente sous forme de 3 paquetages :
Contrôlleur Vue
Modéle
Le contrôleur s’exécutant, peut faire appel au modèle pour consulter la base de données,
exécuter des traitements métiers ou mettre à jour des données… Puis le contrôleur demande à
la vue de s’exécuter, afin de présenter des données à l’utilisateur et recueillir ses futures
demandes.
25
CHAPITRE III : CONCEPTION
Le diagramme de classe identifie la structure des classes d’un système, y compris les
propriétés et les méthodes des classes. Les diverses relations, qui peuvent exister entre les
classes y sont également représentées. [7]
26
CHAPITRE III : CONCEPTION
appartenir Category
Product - CategorieId : int
1..1
- ProductId : int 0..* - Name : string
- Designation : string
- Price : Float
- Quantity : int
- Promotion : Float 1..1
Comment
- Description : string 0..*
0..* - CommentId : int
avoir - InsertionDate : DateTime
- CommentText : string
- PublishDuration : DateTime 0..* faire
- CommentDate : DateTime
- IsAuthorized : Boolean
Pictures
1..5 1..1
- PictureId : int
- PicLink : string
0..*
Panier_Produit
- Count : int
0..*
OrderDetails
1..1
- OrderDetailId : int
Cart
Appartenir - Quantity : int
- UnitPrice : int - RecordId : int Account
- DateCreated : DateTime - UserId : int
+ GetCart () - role : string
1..1 + AddToCart () - FirstName : string
1..1 + RemoveFromCart () - LastName : string
Order + EmptyCart () 0..* - MailAddress : string
+ GetCartItems () Remplir - Passwd : string
- OrderId : int
+ GetCount () - Address : string
- Total : float + GetTotal () - PostalCode : int
1..1
1..1 - OrderDate : Date + CreateOrder () - Country : string
+ GetCartId () - State : string
Shop + MigrateCart () - City : string
...
- ShopId : int 0..1 avoir 1..1
- ShopName : string
- Adress : string
0..* 1..1
- IsAuthorized : Boolean
Créer
Modèle relationnel :
Après avoir établit notre diagramme de classes, nous déduisons le modèle relationnel, placé
en annexe B.
Le contrôleur fait le lien entre la vue et le modèle. Il gère les interactions avec l’utilisateur et
détermine quels traitements doivent être effectués pour une action donnée. D’une manière
générale, il va utiliser les données du modèle, les traiter en fonction de l’action de
l’utilisateur, et les envoyer à la vue afin qu’elle les affiche.
27
CHAPITRE III : CONCEPTION
Account : qui contrôle l’affichage de toutes les interfaces du compte d’un abonné.
Administrator : qui contrôle l’affichage des interfaces de l’administration.
Categorie : qui contrôle l’affichage de toutes les interfaces d’une catégorie (Ajout,
Modification, Suppression)
Checkout : qui affiche la liste des produits à acheter pour passer à la partie paiement.
Home : qui contrôle l’affichage de toutes les interfaces de l’accueil.
PayPal : qui contrôle l’affichage des interfaces de PayPal.
Search : qui contrôle l’affichage des produits recherchés.
Shared : qui fait le contrôle du graphique (header, footer …)
Shop : qui contrôle l’affichage de toutes les interfaces d’une boutique (Ajout,
Modification, Suppression)
ShoppingCart : qui fait le contrôle graphique d’un panier.
Store : qui fait le contrôle de la recherche d’un produit dans une catégorie.
StoreManager : qui contrôle l’affichage de toutes les interfaces d’un produit (Ajout,
Modification, Suppression)
29
CHAPITRE III : CONCEPTION
4- Diagrammes d’interaction
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Administrator Catégorie Create CategorieController Categorie
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Afficher les catégories
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
List <categorie>
Liste des catégories
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Affichage des catégories
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Confirmation
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Create()
Demander un ajout
Vérification
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
alt Create New ()
[Pas d'erreur]
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Confirmation
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Confirmation
Affichage de la nouvelle liste des
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
[Sinon]
Erreur
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Erreur
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Figure 14: Diagramme de séquence « ajouter catégorie »
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Le diagramme illustré par la figure16 indique l’enchaînement pour ajouter une catégorie.
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
L’ajout d’une catégorie passe par 3 principales étapes :
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
L’administrateur
EA 6.5 Unregistered demande
Trial Version EA 6.5l’affichage
UnregistereddeTrial
la Version
liste desEAcatégories, la Trial
6.5 Unregistered vue Version
correspondante
EA 6.5 Unregistered Tria
« Categorie/Index» envoie les informations de la page demandée au contrôleur
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
« CategorieController » qui va récupérer les informations des catégories à partir de l’entité
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
« Categorie » et les renvoie à la vue « Categorie » pour l’afficher.
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
L’administrateur
EA 6.5 Unregistered demande
Trial Version ensuite
EA 6.5 l’ajout Trial
Unregistered d’uneVersion
catégorie, la vue
EA 6.5 « Categorie/Create
Unregistered Trial Version » EA
envoie
6.5 Unregistered Tria
les informations
EA 6.5 Unregistered saisiesEA
Trial Version au6.5
contrôleur desTrial
Unregistered catégories
Version «EA
CategorieController
6.5 Unregistered Trial» Version
pour créer uneUnregistered Tria
EA 6.5
30
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
CHAPITRE III : CONCEPTION
nouvelle entité catégorie au niveau du modèle, ce dernier vérifie que les informations entrées
sont valides puis soit il insère une nouvelle catégorie dans l’entité « Categorie » soit il renvoie
un message d’erreur.
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Abonné ProductManager Create Shop/Create ProductManagerController ShopController Product Shop
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Demande d'ajout de produit
Create (Product)
EA 6.5
alt
Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Envoi d'une requete d'ajout
Creation
[Boutique existe]
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Confirmation
List <Product>
EA 6.5 Unregistered Trial
Affichage de la Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
nouvelle
liste des produits
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Redirection
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Iterface d'ajout de boutique
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Envoi d'une requete d'ajout Vérification
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
[Sinon]
EA 6.5optUnregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
[Erreur]
EA 6.5 Unregistered
loop Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Erreur
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
CreateNew ()
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Confirmation
Create (Product)
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Envoi d'une requete d'ajout
Vérification
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
alt
EA 6.5[erreur
Unregistered
]
Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
loop
Erreur
[Erreur d'ajout]
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version
Erreur EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Message d'erreur
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Saisir informations correspondantes
Create (Product)
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Envoi d'une requete d'ajout
Vérification
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
[Pas d'erreur]
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered
CreateNew () Trial Version EA 6.5 Unregistered Tria
Confirmation
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
Redirection
EA 6.5 Unregistered
Affichage de laTrial
nouvelleVersion EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
liste des produits
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
31Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Tria
CHAPITRE III : CONCEPTION
Le diagramme illustré par la figure16 indique l’enchaînement pour ajouter un produit. L’ajout
d’un produit passe par 2 principales étapes :
Si l’abonné n’a pas de boutique, le contrôleur le redirige vers l’interface d’ajout des
boutiques, une fois la boutique ajoutée l’abonné peut continuer l’ajout des informations de
son produit.
L’entité vérifie que les informations entrées sont valides puis soit l’abonné est redirigé vers la
liste de ses produits où il va trouver son nouveau produit soit il reçoit un message d’erreur.
Conclusion
Au niveau de ce chapitre, nous avons présenté la phase de conception qui a permis de faciliter
la phase de la réalisation de notre site web.
32
CHAPITRE IV : REALISATION
Chapitre IV : Réalisation
Introduction
Dans ce chapitre, nous abordons, en premier lieu, l’environnement matériel et logiciel utilisés
pour développer notre site web. En deuxième lieu, nous détaillons le déploiement de
l’application avant de présenter les principales interfaces. Ensuite nous enchaînons avec
l’implémentation et nous clôturons ce chapitre avec le planning de notre projet.
I- Environnement de développement
1- Environnement matériel
L’application a été développée sur une machine ayant les caractéristiques suivantes :
Marque : Toshiba
Processeur : Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
Mémoire : 4 GB
Disque dur : 500 Go
2- Environnement Logiciel
Ces sont les outils logiciels utilisés pour le développement du site web, de la base de données
et la modélisation des différents diagrammes de conception :
L’Entity Framework est une technologie intégrée à ADO.Net qui fait le Mapping Objet
Relationnel et qui permet de développer des applications de gestion de données, sans se
soucier de la conception du schéma de base de données devant contenir les données de
l’application. Le développeur ne sera plus obligé de baser la conception de son application sur
le modèle logique de données, mais sur le modèle conceptuel, prenant ainsi de la distance
avec la manière dont les données sont stockées dans la base de données. [9]
EA figure
La 6.5 Unregistered
suivanteTrial Version
illustre EA 6.5 Unregistered
le déploiement Trial application.
de notre Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered
deployment Deployment Model Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered
«device» Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial«device»
«device» Version EA 6.5 Unregistered Trial V
PC Serv eur Application
Serv eur BDD
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
Nav igateur Serv eur w eb IIS
Base de données SQL
EA 6.5 UnregisteredExpress
EA 6.5 Unregistered Trial Version HTTP Trial Version EA 6.5 Unregistered Trial Serv
TCP/IP Version
er EA 6.5 Unregistered Trial V
* 1 1 1
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
Application w eb
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
Figure 16:Diagramme de déploiement
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial Version EA 6.5 Unregistered Trial V
CHAPITRE4 : REALISATION
1- Interface d’accueil
La page d’accueil de l’application se présente, comme l’indique la figure 17, à travers laquelle
l’utilisateur peut choisir un produit selon une catégorie spécifiée (1) ou à travers l’interface de
recherche (2), (3). L’internaute peut également ajouter des produits dans son panier puis
s’authentifier en introduisant son login et son mot de passe (4) ou s’inscrire (5) pour procéder
à l’achat.
IV- Implémentation
Dans cette partie, nous allons expliquer un bout de code écrit en ASP.Net MVC qui fait partie
de l’environnement Visual Studio 2012.
La figure ci-dessous explique comment faire une recherche d’un produit, d’une boutique,
d’une catégorie ou tous ensembles en même temps :
V- Planification du projet
Nous présentons dans ce qui suit, le planning de réalisation de notre projet en utilisant le
diagramme de GANTT qui présente un planning présentant une liste de tâches en colonne et
en abscisse l'échelle de temps retenue. Il permet ainsi de visualiser facilement le déroulement
du projet.
CHAPITRE4 : REALISATION
Conclusion
Ce dernier chapitre nous a permis de présenter quelques interfaces réalisées de l’application
selon le profil de l’utilisateur après avoir décrit notre environnement de travail matériel et
logiciel ainsi que la spécification du langage de développement utilisé et du déploiement de
l’application.
CONCEPTION ET DEVELOPPEMENT D’UN MARKETPLACE
Conclusion générale
Au terme de notre projet de fin d’études, nous avons développé une application de type
MarketPlace qui permet à un abonné de vendre et d’acheter n’importe quel type de produit en
ligne.
L’élaboration de ce travail est passée par toutes les étapes constituant le cycle de vie d’un
site web dynamique. Nous avons commencé par l’acquisition de données nécessaires à la
compréhension du projet et l’expression des besoins. Puis, dans un second lieu, nous avons
réalisé une spécification pour exprimer les besoins fonctionnels et non fonctionnels. Ensuite,
nous avons réalisé une conception bien détaillée selon les diagrammes du langage de
modélisation UML et nous avons fait la partie réalisation pour présenter les principales
interfaces de notre site.
Les difficultés surmontées tout au long de la réalisation du projet ont constitué un défi
pour acquérir de nouvelles connaissances techniques. Ces difficultés concernent notamment
l’utilisation et la maîtrise du Framework ASP.net MVC et d’Entity Framework.
Bibliographie et Nétographie
[1] :http://blog.iziflux.com/2014/05/19/comparatif-des-marketplaces-laquelle-la-plus-
avantageuse-pour-marchand-2086698 : étude comparative de quelques Marketplace.
[3] :http://www.annapika.com/comparaison-entre-etsy-dawanda-a-little-market-et-siandso/ :
étude comparative de quelques Marketplace.
[4] : Pascal, Roques. « UML par la pratique », Paris, éditions Eyrolles, 2009.
[5] : http://openclassrooms.com/courses/apprendre-asp-net-mvc/le-pattern-mvc
[7] : http://toubkalit.com/chapitre/85944Suite_2
[8] : https://drive.google.com/file/d/0B65ukNIIimPlSEJseFMxSHhJdUU
[9] :http://www.dotnetfrance.com/Documents/ADOLinq/Presentation%20du%20Framework
%20Entity
[10] Brice-Arnaud GUERIN, « ASP.NET 4.5 avec C# sous Visual Studio 2012 », France,
Editions ENI, 2013, 574p.
[11] : http://www.alexa.com/topsite
CONCEPTION ET DEVELOPPEMENT D’UN MARKETPLACE
ANNEXE
Annexe A :
Cahier de charges
2. Organisme d’accueil
Tunisian International Technologies (T.I.T).
Téléphone : 96 37 91 01
Adresse de l’organisme : Espace Tunis, Bloc H, bureau H3-1, 1073 Mont plaisir – Tunis.
4. Intitulé du projet
L’objectif est de mettre en place une plateforme (Marketplace) qui permettra aux potentiels
clients (Abonnés) d’interagir entre eux dans un cadre commercial. Des exemples tels que EBay,
Kaymu, Etsy nous permettent de mieux nous situer dans le contexte.
Le site devrait permettre de publier des produits pour la vente, d’acheter en ligne et garantir
la sécurité des transactions.
L’efficacité, la sécurité, la simplicité (ergonomie, rapidité, etc.)… sont des facteurs de réussite
majeurs qu’il faut bien soigner pour pouvoir se démarquer et être le plus compétitif possible.
CONCEPTION ET DEVELOPPEMENT D’UN MARKETPLACE
6. Travail demandé
Dans cette partie, nous définirons les fonctionnalités qui doivent être fournis par le
Marketplace.
- Consultation du site :
Visualiser les produits.
Rechercher des produits selon différents critères.
Trier les résultats de recherche par :
1- Catégorie.
2- Date d’ajout.
3- Prix.
4- Vendeur.
- Accès au compte de l’abonné :
S’inscrire.
Gérer son compte :
3- Modifier les informations personnelles.
4- Modifier/ récupérer mot de passe.
5- Faire le suivi des ventes en cours.
6- Visualiser l’historique des ventes et des achats.
- Vente de produits :
La mise en vente englobe la gestion des produits, qui consiste à :
- Administration du site :
Interagir avec un abonné :
1- Consulter la liste des abonnés.
2- Contacter un abonné.
3- Supprimer un abonné.
4- Supprimer un produit en vente.
Gérer les catégories :
5- Consulter les catégories.
6- Ajouter une catégorie.
7- Modifier une catégorie.
8- Supprimer une catégorie.
Consulter l'historique des ventes et des achats de tous les
utilisateurs.
Définir les conditions de vente.
CONCEPTION ET DEVELOPPEMENT D’UN MARKETPLACE
7. Environnement de Travail
Environnement matériel :
Environnement logiciel :
Annexe B
Modèle relationnel
Product : (ProductId, Designation, Price, Quantity, Promotoin, Description,
InsertionDate, PublishDate, IsAuthorize, #CategorieId, #idboutique)
SOMMAIRE
Introduction générale ........................................................................................................................ 1
Chapitre I : Présentation du cadre général du projet ............................................................................... 2
Introduction ......................................................................................................................................... 2
I- Présentation de la société ......................................................................................................... 2
II- Etude de l’existant.................................................................................................................... 2
1- Etude comparative de quelques MarketPlaces ........................................................................................2
2- Critique des solutions............................................................................................................... 5
3- Présentation des solutions de paiement .....................................................................................................5
4- Solution proposée .............................................................................................................................................6
III- Méthodologie adoptée .............................................................................................................. 7
Conclusion........................................................................................................................................... 7
Chapitre II : Spécification des besoins .......................................................................................................... 8
Introduction ......................................................................................................................................... 8
I- Etude des besoins ..................................................................................................................... 8
1- Besoins fonctionnels ........................................................................................................................................8
2- Besoins non fonctionnels ............................................................................................................................ 10
II- Cas d’utilisation ..................................................................................................................... 10
1- Présentation des acteurs ............................................................................................................................... 11
3- Raffinement du diagramme de cas d’utilisation relatif à la consultation du site ....................... 13
4- Raffinement du diagramme de cas d’utilisation relatif à l’achat des produits ........................... 13
4- Raffinement du diagramme de cas d’utilisation relatif à la vente des produits ......................... 15
5- Raffinement du diagramme de cas d’utilisation relatif à l’administration du site .................... 17
6- Raffinement du diagramme de cas d’utilisation relatif à la gestion du compte ......................... 18
III- Diagrammes de séquence ....................................................................................................... 19
1- Raffinement du diagramme de séquence relatif à l’authentification ............................................. 19
2- Raffinement du diagramme de séquence relatif à l’achat d’un produit ........................................ 20
3- Raffinement du diagramme de séquence relatif à la mise en vente d’un produit ...................... 21
Conclusion......................................................................................................................................... 22
Chapitre III : Conception............................................................................................................................. 23
Introduction ....................................................................................................................................... 23
I- Conception générale............................................................................................................... 23
1- Patron de conception adopté ...................................................................................................................... 23
2- Diagramme de paquetages .......................................................................................................................... 25
CONCEPTION ET DEVELOPPEMENT D’UN MARKETPLACE