0% found this document useful (0 votes)
93 views68 pages

Rapport Final PFA2

rapport de projet ecommerce

Uploaded by

nidhalzaghdoudi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views68 pages

Rapport Final PFA2

rapport de projet ecommerce

Uploaded by

nidhalzaghdoudi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 68

République Tunisienne


Ministère de l’Enseignement
Supérieur et de la Recherche
Scientifique
Université de Tunis

Ecole Nationale Supérieure
d’Ingénieurs de Tunis

Réf : PFA1-2021-
Département Génie Mathématiques

Rapport de Projet de Fin d’Année


De

Première année en Génie MAM

Présenté et soutenu publiquement le 24/05/2024

Par

Zaghdoudi Nidhal

Conception et réalisation d’une


application web de vente en ligne.

Composition du jury

Madame BENRGUAYA Houda Présidente


Madame Ines BAYOUDH SAADI Encadrante

Année universitaire : 2023-2024

5, Avenue Taha Hussein – Tunis www.ensit.tn Tel. : (+216)71 49 68 80;71 49 402


B. P. 56, Bab Menara 1008 Fax : (+216) 71 39 11 66
ღ Dédicaces

Nous dédions ce projet à nos chers parents qui ont toujours fait des
sacrifices pour notre éducation et notre bien-être. Leur soutien et leur
patience sont sans aucun doute notre principale source de motivation
et d'inspiration.

À nos frères, nos sœurs et à nos meilleurs amis, en gratitude pour


l'amour qu'ils nous offrent chaque jour et pour leur incroyable
gentillesse.

Enfin, à tous nos collègues et professeurs.

ღ Remerciements

I
En préambule à ce projet, nous exprimons notre gratitude
envers Dieu qui nous a guidés et nous a accordé la patience et
le courage nécessaires durant ces années d'études. Nous
souhaitons également adresser nos remerciements au corps
professoral et administratif de l'École Nationale Supérieure
d'Ingénieurs de Tunis, dont les efforts considérables
garantissent une formation de qualité.

Nous tenons à remercier chaleureusement Mme Ines Bayoudh


Saadi pour sa disponibilité constante tout au long de la
réalisation de ce projet, ainsi que pour son inspiration, son
soutien et le temps précieux qu'elle a bien voulu nous accorder.
Sans son aide, ce projet n'aurait pas pu voir le jour.

ღ Encore merci à tous ღ

II
Table des matières
Introduction générale...................................................................................5

Chapitre 1 : Etude préalable..........................................................................7


Introduction............................................................................................................ 7

1 Contexte du projet.................................................................................7

2 Problématique.......................................................................................7

3 Travail demandé....................................................................................8

4 Spécification des besoins.......................................................................8


Conclusion............................................................................................................... 9

Chapitre 2 : Etude détaillée.........................................................................10


Introduction.......................................................................................................... 10

1 Collecte et analyse de données.............................................................10

2 Dictionnaire de données.......................................................................10

3 Règles de gestion.................................................................................14
3.1 Les règles de type « définition »......................................................................14
3.2 Les règles de type « fait »...............................................................................15
3.3 Les règles de type « contrainte »....................................................................15
3.4 Modélisation conceptuelle de données............................................................16
3.5 Description des entités....................................................................................16
3.6 La description des relations et des cardinalités...............................................20
3.7 Vérification de la normalisation.......................................................................23

4 Modélisation logique de données..........................................................25


Conclusion............................................................................................................. 26

Chapitre 3 : Etude Technique......................................................................27


Introduction.......................................................................................................... 27

1 Environnement matériel.......................................................................27

2 Environnement logiciel.........................................................................27

3 Modèle physique des données..............................................................30

4 Création de la base de données............................................................31

5 Alimentation de la base de données......................................................34


Conclusion............................................................................................................. 36

Chapitre 4 : Réalisation et Mise en œuvre....................................................37


Introduction.......................................................................................................... 37
1 Présentation des requêtes en format SQL..............................................37

2 Réalisation de l’application web............................................................40


2.1 Les Interfaces de l’espace client......................................................................40
2.2 Les Interfaces de l’espace Administrateur.......................................................45
Conclusion............................................................................................................. 49

Conclusion générale...................................................................................50

Bibliographie..............................................................................................51

Annexe1 : Script de création de la base de données.....................................52

Annexe 2 : Script d’alimentation de la base de données...............................58

Annexe 3 : Code de la connexion interface web à la base de données............62

2
Tables des figures
Figure 1 : Modèle conceptuel de données...............................................................................16
Figure 2: Génération du MLD (étapes)...................................................................................25
Figure 3 : Modèle logique des données..................................................................................26
Figure 4: Générer le modèle physique(étapes).......................................................................30
Figure 5: Modèle physique des données.................................................................................31
Figure 6 : Génération du script de la base de données (étapes)..............................................32
Figure 7: Echantillon du script de la création de base de données.........................................32
Figure 8 : Importation du script de la base se données avec php my admin...........................33
Figure 9: Exécution de script la création de la base de données.............................................34
Figure 10: Résultat d'exécution du script de création d de la base de données.......................34
Figure 11: Alimentation de la table CLIENT.........................................................................35
Figure 12: Liste des tables existantes......................................................................................35
Figure 13: Les données de la table CLIENT...........................................................................36
Figure 14: Interface d’authentification des clients................................................................40
Figure 15: Interface d’inscription des clients..........................................................................40
Figure 16: Partie une de l’accueil.........................................................................................41
Figure 17: Deuxième partie de l’accueil................................................................................41
Figure 18: Partie une de la page catégorie femme................................................................42
Figure 19 : Deuxième partie de la page catégorie femme.....................................................42
Figure 20: Interface détails du produit..................................................................................43
Figure 21 : Interface du panier...............................................................................................44
Figure 22: Interface contact...................................................................................................45
Figure 23: Interface d’authentification de l’administrateur..................................................45
Figure 24: Interface profile...................................................................................................46
Figure 25: Interface des commandes....................................................................................46
Figure 26: L’interface des commandes.................................................................................47
Figure 27 : Interface de contenu de la commande.................................................................48
Figure 28: Interface d'insertion de produit.............................................................................48
Figure 29 : Interface de traitement de la commande...............................................................49
Figure 30 : Code de la connexion interface web à la base de données...................................62

3
Table des tableaux
Tableau 1 : Dictionnaire de données.......................................................................................14
Tableau 2: Description des attributs de chaque entité.............................................................20
Tableau 3 : Description des relations et des cardinalités........................................................23
Tableau 4 : Vérification des règles de normalisation..............................................................25
Tableau 5 : Environnement logiciel........................................................................................27
Tableau 6: Environnement logiciel.........................................................................................29
Tableau 7: La formulation en SQL.........................................................................................39

4
Introduction générale

Grâce à Internet, de nouvelles perspectives de développement apparaissent dans


l'élargissement du marché économique. La création d’un site Internet a pour but de valoriser
l'image de la société et de réaliser des économies. L'utilisation d'Internet, en tant que
segment de communication de masse, permet également de réduire les coûts marketing et
d'autres frais associés. Avec la généralisation du haut débit et l'amélioration de la sécurité
des moyens de paiement en ligne, la confiance des utilisateurs dans l'e-commerce est en
constante augmentation. Aujourd'hui, la plupart des adultes utilisent Internet pour effectuer
des achats. Les consommateurs et les entreprises se tournent de plus en plus vers les
boutiques en ligne qui offrent la possibilité de comparer les produits, de vérifier leur
disponibilité et de comparer les prix, permettant ainsi d'économiser considérablement du
temps.

Le présent rapport est effectué dans le cadre de projet de fin d’année au sein de l'Ecole
Nationale Supérieure d'Ingénieurs de Tunis (ENSIT). Ce projet est inscrit dans le contexte de
la vente en ligne, mettant l'accent sur la conception et le développement d'un site web e-
commerce dédié à une boutique de vêtements. A travers cette initiative, nous explorons les
défis et les opportunités inhérents à la création d'une plateforme numérique dans le secteur
de la mode, tout en mettant en lumière les compétences techniques et conceptuelles acquises
au cours de notre parcours académique.

Ce rapport est articulé autour de quatre chapitres, chacun offrant un éclairage spécifique
sur les différentes facettes de notre projet.

 Le premier décrit l’étude préalable. Il présente le contexte, la problématique, la


description du travail demandé et enfin la spécification des besoins.

 Le deuxième chapitre est consacré à l’étude détaillée. Il présente le dictionnaire des


données, les règles de gestion ainsi que la modélisation conceptuelle et logique de
données.

5
 Le troisième chapitre présent l'étude technique, il décrit l’environnement matériel et
logiciel utilisé, le modèle physique de données, la création et l’alimentation de la base de
données.

 Le quatrième chapitre est consacré à la formulation, la mise en œuvre des requêtes


SQL et la réalisation du site.

Notre rapport est clôturé par une conclusion générale et des perspectives d'avenirs.

6
Chapitre 1 : Etude préalable

Introduction
Dans ce chapitre, nous allons décrire le détail du contexte du projet en faisant une
description détaillée de l’univers à modéliser, l'étude et la critique de l'existant et nous allons
spécifier le travail à réaliser.

1 Contexte du projet
Le contexte dans lequel ce projet s'inscrit est celui d'un marché en constante évolution,
façonné par les avancées technologiques et les changements de comportement des
consommateurs. Dans l'industrie de la mode, cette évolution est particulièrement
remarquable, avec une transition significative vers le commerce électronique comme
principal canal de vente.
Cette transition vers le e-commerce a également été accélérée par des événements mondiaux
tels que la pandémie de COVID-19, qui ont contraint de nombreux consommateurs à
privilégier les achats en ligne pour des raisons de sécurité et de santé.
Dans ce contexte, notre projet s’inscrit dans le cadre de projet de fin d’année et il vise à
répondre à la demande croissante de solutions e-commerce dans le secteur de la mode, en
fournissant une plateforme conviviale et intuitive pour l'achat de vêtements en ligne. En
comprenant les tendances du marché et les préférences des consommateurs, nous avons
identifié une opportunité stratégique pour notre boutique de vêtements de tirer parti du
potentiel du commerce électronique pour atteindre de nouveaux clients et accroître ses
revenus.
Ainsi, ce projet s'inscrit dans une tendance plus large de transformation numérique de
l'industrie de la mode, où les entreprises cherchent à s'adapter aux nouvelles réalités du
marché en investissant dans des solutions technologiques innovantes pour répondre aux
besoins changeants des consommateurs.

7
2 Problématique
Nous allons concevoir, alimenter et interroger une base de données qui va nous aider à
résoudre les problèmes suivants :
 L'abondance des documents dans l'entreprise qui peut ralentir les services.
 Risque de mélanger les documents ce qui peut être fatal.
 La suivie en ligne des clients et des fournisseurs (suivie de livraison, suivie de
commandes).
 La perte de la clientèle est possible, surtout quand le traitement de leurs
demandes
Prend beaucoup de temps pour être livré.

3 Travail demandé
Ce projet consiste à la mise en place d’une application Web dynamique qui gère la
commercialisation des vêtements. Ce site permettra d’offrir beaucoup des services à savoir :
 Recherche de vêtements selon leurs catégories.
 Consultation de catalogues des vêtements.
 Gestion de panier et lancement d’une commande en ligne.

Cette application Web permettra de cibler une nouvelle catégorie de clientèles (locale et
internationale), et d’offrir une meilleure qualité de service en communication et en
commerce.

4 Spécification des besoins


Ce site devra contenir deux types d’espaces séparées :

4.1Espace client
Les tâches pouvant être effectuées par le client sont les suivants :
 Enregistrer et consulter le profil : Les utilisateurs doivent pouvoir créer un
compte sur le site et accéder à leur profil pour gérer leurs informations personnelles
et consulter leur historique d'achats.

8
 Création de compte : Les utilisateurs doivent pouvoir s'inscrire en fournissant leur
nom, leur adresse email et un mot de passe.
 Connexion au compte : Les utilisateurs enregistrés doivent pouvoir se connecter en
utilisant leur adresse email et leur mot de passe.
 Affichage des produits : Les produits doivent être présentés dans une liste claire
avec des images, des noms et des prix.
 Navigation : Les utilisateurs doivent pouvoir parcourir les produits par catégorie ou
utiliser des filtres pour affiner leur recherche.
 Barre de recherche : Une barre de recherche doit être facilement accessible depuis
toutes les pages du site.
 Panier d'achat : Les utilisateurs doivent pouvoir ajouter des produits à leur panier,
consulter le contenu de leur panier, modifier les quantités et supprimer des articles
avant de lancer une commande.
 Processus de commande : Les utilisateurs doivent pouvoir passer une commande.
 Déconnexion : Fournir une option pour que les utilisateurs puissent se déconnecter
en toute sécurité de leur compte lorsque nécessaire.

4.2Espace administrateur du site


Le site affichera les tâches qui peuvent être effectuées par l’administrateur, ils sont les
suivants :
 Ajouter, modifier et supprimer des catégories : chaque catégorie est caractérisée
par son nom et sa description.

 Ajouter, modifier et supprimer des produits : chaque produit est caractérisé par
son nom et sa catégorie.

 Traiter les commandes : Vérification de la commande et la confirmation de la


livraison

 Gérer des comptes : ajout ou suppression d’un compte. Chaque compte est
caractérisé par le login, le mot de passe, le nom et le prénom de l’administrateur.
 Déconnexion : cela permet la sécurité de l’interface.

Conclusion

9
Dans ce chapitre, nous avons présenté le contexte du projet ainsi qu’une critique de
l'existant afin de dégager les limites et introduire la solution proposée. Le chapitre suivant
sera consacré à la présentation du dictionnaire de données épuré, des règles de gestion, du
MCD et du MLD.

Chapitre 2 : Etude détaillée

Introduction
Ce chapitre présente le dictionnaire des données épuré, les règles de gestion ainsi que le
modèle conceptuel de données (MCD) qui est basé sur la description des entités, la
justification des entités et des relations ainsi que la vérification de normalisation et nous
allons aussi à déterminer le modèle logique de donnée à partir de MCD.

1 Collecte et analyse de données


Nous avons effectué l'analyse de la description et nous avons identifié un ensemble de
données dans le but de créer un dictionnaire de données brut. On a éliminé, dans ce
dictionnaire, les synonymes, les polysèmes et les données calculées pour en garder
uniquement les données élémentaires. Nous avons aussi déterminé les règles de gestion
nécessaires à la modélisation conceptuelle de données.

2 Dictionnaire de données

Le dictionnaire de données épuré de notre étude de cas est donné par le tableau 1 :
Code Désignation Type de données et longueur Règles et contraintes

Id de client entier
Id_client

Prénom de Caractère Variable (30)


prenom_C Client

10
Email de Caractère Variable (30) Adresse email de la
Email_C client forme EXP :
nomagence@gmail.c
om
Téléphone de entier (30)
téléphone client
Nom_C Nom de client Caractère Variable (30)

Adresse réelle Caractère Variable (30) Adresse email de la


Adresse_C d’un client forme :
nomusager@gmail.co
m
Mot de passe Caractère Variable (100)
Mdp_C d’un client

La date date
Date_cre_C d’inscription
d’un client
Id d’un entier
id_admin administrateur
Nom de Caractère Variable (30)
Nom_admin l’administrate
ur
Prénom Caractère Variable (30)
Prenom_admin d’administrate
ur
Email de Caractère Variable (100) Adresse email de la
Email_admin l’administrate forme :
ur nomusager@gmail.co
m
Mot de passe Caractère Variable (100)
Mdp_admin d’un
administrateur

11
La numéro de entier
Téléphone-admin téléphone de
l’admin
Id d’une entier
catégorie
Id_categorie
Caractère Variable (100)
Nom_categorie Nom d’une
catégorie

Description Caractère Variable (100)


Description_catego de la catégorie
rie
La date de date
Date_cre_categorie creation de la
categorie
Identifiant de entier
la sous-
Id_souscategorie catégorie
Nom de la Caractère Variable (100)
Nom_sous- sous-catégorie
categorie
Description Caractère Variable (100)
Description_sous- de la sous-
categorie catégorie
Date_cre_sous- La date de date
categorie creation de la
sous-categorie
Identifiant entier
Id_produit d’un produit
Nom d’un Caractère Variable (30)
Nom_produit produit
Description Caractère Variable (30)
du

12
Description_produit produit
Prix unitaire reel Prix du produit en
Prix_produit du produit dinar tunisien
Indique l’url Caractère Variable (100)
Image_principale de l’image
Principale
d’un produit
Date_creation_pro Le date de date
creation du
produit
Date_modification_ Le date de date
pro modification
du produit
Identifiant entier
Id_image d’une image
L’url d’une Caractère Variable (100)
nom_image image
Identifiant entier
Id_panier d’une panier

Le montant reel montant en dinar


Montant_totale_pan totale d’une tunisien
ier panier

Date_cre_p Date de date


creation de
panier
état L’état d’une Caractère Variable (100)
panier
Identifiant entier
Id_ligne d’une ligne de
panier

13
Définie la entier
quantite de
quantite produit dans
une ligne de
produit

Prix_ligne Prix totale reel Prix totale d’une ligne


d’une ligne de de panier en dinar
panier tunisien
Indique la Caractère
taille taille d’un
produit
contenu dans
une ligne de
panier
Identifiant entier
d’une
Id_commande commande
Montant reel Prix totale d’une
Montant_totale totale d’une commande en dinar
cammande tunisien
Statut de la Caractère Variable (100)
statut commande
Date creation date
DATE_cre_comma De la
nde commande
La dernière date
DATE_modi_com
Date de
mande
modification
D’une
commande

T ABLEAU 1 : D ICTIONNAIRE DE DONNÉES

14
3 Règles de gestion
Dans la présente section, nous allons décrire les règles selon leurs types.

3.1 Les règles de type « définition »

Nous décrivons dans cette section les règles de type définition :


 Un administrateur est décrit par son nom, prénom, email, téléphone et mot de passe
 Un client est décrit par son adresse email, son nom et prénom, téléphone, son adresse
réelle et son mot de passe.
 Une image est décrite par son nom.
 Un produit est décrit par nom, un descriptif, un prix et des images.
 Une catégorie est décrite par son nom et un descriptif.
 Une sous-catégorie est décrite par son nom et un descriptif.
 Un panier est décrit par un état et un montant.
 Une ligne de panier est décrite par la quantité de produit, prix totale et la taille.
 Une commande est décrite par le statut et le montant totale en DT.

3.2 Les règles de type « fait »


Nous décrivons dans cette section les règles de type fait :

 Un administrateur gère un ou plusieurs produits.


 Un administrateur gère un ou plusieurs catégories.
 Un produit n’appartient qu’à une seule catégorie.
 Une catégorie a une ou plusieurs sous-catégories.
 Une sous-catégorie n'appartient qu'à une seule catégorie.
 Un produit a plusieurs images.
 Une image est associée à un seul produit.
 Un client a un ou plusieurs paniers.
 Un panier contient plusieurs lignes de panier.
 Une ligne de panier est associée à un seul produit.
 Une commande est associée à un seul client.
 Une commande contient un ou plusieurs produits.
 Une commande est associée à un seul panier.
 Un administrateur valide plusieurs commandes.

15
3.3 Les règles de type « contrainte »

Nous décrivons dans cette section les règles de type contrainte :


 L’attribut Email prend des valeurs de la forme d’une adresse email (Exemple :
nomUtilisateur@gmail.com)
 L’attribut « nom_image», doit obéir à la forme d’une adresse URL.

3.4 Modélisation conceptuelle de données


Le MCD de notre étude de cas est donnée par la figure 1.

F IGURE 1 : M ODÈLE CONCEPTUEL DE DONNÉES

16
3.5 Description des entités

Une description bien détaillée des entités est élaborée dans le tableau 2 :

Entité et dépendances fonctionnelles Description


L’entité « ADMINISTRATEUR » est
décrite par les attributs suivants :
Id_admin : Identifiant unique d’un
administrateur.
nom_admin:Nom d’un administrateur
prenom_admin : prenom d’un
administrateur
email_admin: adresse email d’un
Id_admin → nom_admin,
administrateur
prenom_admin,email_admin,
telephone_admin ;numero de telephone de
telephone_admin,mdp_admin
l’administrateur
mdp_admin:mot de passe
Elle est identifiée par id _admin .
L’entité « CLIENT » est décrite par les
attributs suivants :
Id_client : Identifiant unique d’un client.
nom_C:Nom d’un client.
prenom_C : prenom d’un client.
email_C: adresse email d’un client.
telephone;numero de telephone de client.
mdp_C:mot de passe
date_cre_C :date d’inscription
Elle est identifiée par id _client .
Id_client → Nom_C, prenom_C,
adresse_C,email_C,
Mdp_C,telephone,date_creC

17
L’entité « PRODUIT» est décrite par les
attributs suivants :
Id_produit : Identifiant unique d’un
produit.
nom_produit:Nom d’un produit.
PRIX_produit : prenom d’un produit.
Description_produit :la description d’un
produit.
Id_produit → Nom_produit, Image-principale: image d’un produit.
prix_produit,description_produit, Date_creation_pro ;date de creation du
Imageprincipale,Date_creation_pro, produit.
Date_modification_pro Date_modification_pro : date modification
d’un produit.
Elle est identifiée par id_produit .
L’entité « CATEGORIE» est décrite par
les attributs suivants :
Id_categorie : Identifiant unique d’une
categorie.
nom_produit:Nom d’une categorie.
Description_produit :la description d’une
Id_categorie → Nom_categorie, categorie.
Description_categorie,date_cre_categorie
Date_creation_categorie ;date de creation
d’une categorie.
Elle est identifiée par id_categorie .

18
L’entité « SOUS-CATEGORIE» est
décrite par les attributs suivants :
Id_sous-categorie : Identifiant unique
d’une sous-categorie.
nom_ sous-categorie :Nom d’une sous-
categorie.
Id souscategorie → Nom_sous-categorie,
Elle est identifiée par id _sous-categorie .
Description_sous-categorie,date_cre_souscat

L’entité « image» est décrite par les attributs


suivants :
Id_image: Identifiant unique d’une sous-
catégorie.
Id_image → Nom_image, nom_ image :l’adresse d’une image.
Elle est identifiée par id _image .
L’entité « PANIER» est décrite par les
attributs suivants :
Id_panier: Identifiant unique d’une panier.
Montant-totale_panier :le montant totale
d’une panier.
Etat :l’état d’une panier.
Date-cre_p :la date de création d’une panier.

Id_panier → montant-totale_panier,etat, Elle est identifiée par id _panier .


date_cre_p

L’entité « ligne-panier» est décrite par les


attributs suivants :
Id_ligne : Identifiant unique d’une ligne-
panier.
quantité :quantité de produit.
taille :taille de produit.
Prix_ligne:prix totale d’une ligne de panier.
date_cre_ligne:date de creation d’une ligne.

19
Id_ligne → quantite, taille, prix_ligne, date_mod_ligne: date de modification
Date_cre_ligne,Date_mod_ligne d’une ligne.
Elle est identifiée par id _ligne .

L’entité « COMMANDE» est décrite par les


attributs suivants :
Id_commande: Identifiant unique d’une
commande.
Montant-totale_panier :le montant totale
d’une commande.
statut :l’état d’une commande.
Id_commande → montant-totale_commande,
Date-cre_commande :la date de création
statut,DATE-cre_commande, DATE-
d’une commande.
modi_commande
Date-modi_commande :la date de
midification d’une commande.
Elle est identifiée par id _ commande

T ABLEAU 2: D ESCRIPTION DES ATTRIBUTS DE CHAQUE ENTITÉ

3.6 La description des relations et des cardinalités

Les relations représentent les liens existants entre les entités et elles sont qualifiées par
des cardinalités. Ces dernières représentent les nombres minimum et maximum auquel une
occurrence d’une entité peut participer à une association, sont des propriétés des classes des
entités, ils permettent de caractériser les liens qui existent entre une entité et la relation à
laquelle est reliée. Ce tableau présente une description détaillée des relations et des
cardinalités :

Relation Entités Cardinal Description

20
ités
Diriger ADMINISTRATEUR 1,n—1,1 La relation « diriger » de dimension 2
_CATEGORIE et elle n’a pas d’attribut propre, elle
relie l’administrateur avec la
catégorie. Elle est caractérisée par le
couple de cardinalités (1, n) — (1, 1)
puisqu’un admin dirige une ou
plusieurs catégories et une catégorie
est dirigé par un et un seul admin.
Avoir CATEGORIE—SOUS- 1,n—1,1 La relation «avoir » n’a pas d’attribut
CATEGORIE propre, sa dimension est 2. Elle relie
la categorie à ses sous-categories. Elle
est caractérisée par le couple de
cardinalités (1,n)-(1,1) puisqu’une
categorie a une ou plusieurs sous-
categories et une sous-categories ne
peut appartenir qu’à une et une seule
categorie.
Obtenir PRODUIT—image 1,3—1,1 La relation «obtenir» n’a pas
d’attribut propre, sa dimension est 2.
Elle relie le produit à ses images. Elle
est caractérisée par le couple de
cardinalités (1,3)-(1,1) puisqu’un
produit a une ou trois images, et une
image ne peut être associer qu’a un et
un seul produit.
Gérer ADMINISTRATEUR 1,n—1,1 La relation «gérer» n’a pas d’attribut
— PRODUIT propre, sa dimension est 2. Elle relie
un administrateur à un produit. Elle
est caractérisée par le couple de
cardinalités (1,n)-(1,1) puisqu’un
administrateur peut gérer un ou
plusieurs produits et un produit ne
peut être gérer que par un et un seul

21
administrateur.
Possède CLIENT—PANIER 0,n—1,1 La relation «possède» n’a pas
d’attribut propre, sa dimension est 2.
Elle relie un client à son panier. Elle
est caractérisée par le couple de
cardinalités (0,n)-(1,1) puisqu’un
client posséde aucun ou plusieurs
panier et un panier ne peut être
posséder que par un et un seul client.
Inclue1 PANIER—ligne-panier 1,n—1,1 La relation « Inclue1» n’a pas
d’attribut propre, sa dimension est 2 .
Elle relie un panier à des lignes de
panier. Elle est caractérisée par le
couple de cardinalités (1,n)-(1,1)
puisqu’un panier peut inclure une ou
plusieurs ligne de panier et une ligne
de panier ne peut être inclure que
dans un seul panier.
Inclue2 COMMANDE— ligne- 1,n—1,1 La relation « Inclue2 » n’a pas
panier d’attribut propre, sa dimension est 2.
Elle relie une commande à des lignes
de panier. Elle est caractérisée par le
couple de cardinalités (1,n)-(1,1)
puisqu’une commande inclue une ou
plusieurs ligne de panier et une ligne
de panier est inclue que dans une
seule commande.
Valider ADMINISTRATEUR— 0,n—1,1 La relation « valider » n’a pas
COMMANDE d’attribut propre, sa dimension est 2 .
Elle relie un administrateur au
commandes. Elle est caractérisée par
le couple de cardinalités (0,n)-(1,1)
puisqu’un administrateur peut valider
aucun ou plusieurs commandes et

22
une commandes est validée que par
un et un seul administrateur.
Appartenir PRODUIT— 1,1—0,n La relation « appartenir » n’a pas
CATEGORIE d’attribut propre, sa dimension est 2.
Elle relie un produit à une catégorie.
Elle est caractérisée par le couple de
cardinalités (1,1)-(0,n) puisqu’un
produit appartient qu’à une et une
seule catégorie et une catégorie
contient aucun ou plusieurs produits.
Contenir Ligne-panier— 1,1—1,n La relation « contenir » n’a pas
PRODUIT d’attribut propre, sa dimension est 2.
Elle relie une ligne de panier au
produit. Elle est caractérisée par le
couple de cardinalités (1,1)-(1,n)
puisqu’une ligne de panier contient
un et un seul produit et une produit
est contenu dans un ou plusieurs
lignes de panier.
Passer CLIENT_COMMANDE 0,n—1,1 La relation « passer » n’a pas
d’attribut propre, sa dimension est 2.
Elle relie un client à la commande.
Elle est caractérisée par le couple de
cardinalités(0,n)—(1,1)puisqu’un
client passe aucun ou plusieurs
commandes et une commande est
passée par un et un seul client .

T ABLEAU 3 : D ESCRIPTION DES RELATIONS ET DES CARDINALITÉS

3.7 Vérification de la normalisation

Notre objectif est d'élaborer un modèle vérifié et normalisé en troisième forme normale.
A cet effet, nous allons définir chacune des formes normales et l'appliquer à notre modèle.

23
 Première forme normale : (1FN) : Tous les attributs de l’entité doivent contenir une
valeur atomique c’est-à-dire non multiple et non décomposable.
 Deuxième forme normale (2FN) : Si elle vérifie la 1FN et si les attributs de chaque
entité dépendent pleinement de la clé primaire.
 Troisième forme normale (3FN) : La troisième forme normale est vérifiée si la 2FN
est vérifiées et lorsqu’il n’existe pas de dépendance entre les attributs non-clé.

A titre d'exemple nous allons considérer pour la vérification des règles de normalisation,
l'entité CLIENT.

 Vérification de la première forme normale :

A partir de l’entité CLIENT par exemple, tous les attributs (id_client,nom_C,prenom_C,


adresse_C,email_C,mdp_C,telephone,date_cre_C) contiennent une valeur atomique c’est-à-
dire non multiple et non décomposable.

 Vérification de la deuxième forme normale :

Nous allons considérer la même entité (CLIENT) qui est en 1FN et les dépendances
fonctionnelles suivantes :
id_client → nom_C
id_client → prenom_C
id_client → adresse_C
id_client → email_C
id_client → mdp_C
id_client → telephone
id_client → date_cre_C

Nous pouvons déduire que tous les attributs dépendent pleinement de l'identifiant donc elle
est en 2FN.
 Vérification de la troisième forme normale :

Puisque l’entité CLIENT vérifie la 2FN et il n’a pas de dépendance fonctionnelle entre
les attributs non-clé par exemple le nom de client ne détermine pas téléphone et vice
versa alors elle est en 3FN.
Dans ce tableau, nous avons vérifié les règles de normalisation pour tous les attributs :

24
Entité 1FN 2FN 3FN
ADMINISTRATEUR ✓ ✓ ✓

PRODUIT ✓ ✓ ✓

CATEGORIE ✓ ✓ ✓
SOUS-CATEGORIE ✓ ✓ ✓
Image ✓ ✓ ✓
CLIENT ✓ ✓ ✓
PANIER ✓ ✓ ✓
Ligne-panier ✓ ✓ ✓
COMMANDE ✓ ✓ ✓

T ABLEAU 4 : V ÉRIFICATION DES RÈGLES DE NORMALISATION

4 Modélisation logique de données


Le Modèle Logique de Données (MLD) est une étape intermédiaire pour passer du modèle
E/A, qui est un modèle sémantique, vers une représentation physique des données.
Nous avons généré le MLD à partir du MCD par des étapes que nous allons décrire ci-
dessous ce qui en résulte sept relations illustrées par la figure X.
1- Cliquer sur Outils/Générer un Modèle Logique de Données. Une fenêtre s’affiche
sous le titre "Option de génération du MLD".
2- Donner un nom à la Modèle Logique de Données, puis appuyer sur OK.

25
F IGURE 2: G ÉNÉRATION DU MLD ( ÉTAPES ).

Le MLD est généré avec succès (figure3)

26
F IGURE 3 : M ODÈLE LOGIQUE DES DONNÉES .

Conclusion

Dans ce chapitre, nous avons présenté le dictionnaire de données épuré ainsi que les règles
de gestion. En outre, nous avons généré le Modèle Conceptuel de Données et le Modèle
Logique de Données de notre projet, en décrivant toutes les entités, relations et cardinalités.
On s’intéressera à l’étude technique du projet tel que la définition de nos environnements et
la génération du modèle physique de données et de la base de données.

27
Chapitre 3 : Etude Technique

Introduction
Dans ce chapitre, nous allons décrire l’environnement matérielle et logicielle, déduire le
modèle physique des données (MPD) et créer la base de données à partir du modèle
conceptuel des données (MCD).

1 Environnement matériel
Ce projet a été réalisé en utilisant un ordinateur ayant les caractéristiques suivantes :

Caractéristiques PC

Processeur RYZEN 7 6800H

RAM 8GO

Système Windows 11 professionnel (64


d’exploitation Bits)

T ABLEAU 5 : E NVIRONNEMENT LOGICIEL

2 Environnement logiciel
Le tableau 6 résume les logiciels que nous avons utilisé dans notre travail.

Logiciel et logo Description


Power Designer Power Designer est un atelier de génie
logiciel. Il permet de modéliser les
traitements informatiques et leurs bases
de données associées. Il est utilisé pour
la création assister les ingénieurs dans
la conception et l'élaboration des
modèles conceptuels, logiques et
physiques de données.[1]
MySQL MySQL est un système de gestion de bases

28
de données relationnelles (SGBDR). Il est
distribué sous une double
licence GPL et propriétaire. Il fait partie des
logiciels de gestion de base de données les
plus utilisés au monde3, autant par le grand
public (applications web principalement) que
par des professionnels, en concurrence
avec Oracle, PostgreSQL et Microsoft SQL
Server. [2]

XAMPP XAMPP est un ensemble


de logiciels permettant de mettre en place
un serveur Web local, un serveur FTP et
un serveur de messagerie électronique. Il
s'agit d'une distribution de logiciels
libres (X (cross) Apache MariaDB Perl PHP)
offrant une bonne souplesse d'utilisation,
réputée pour son installation simple et rapide.
Ainsi, il est à la portée d'un grand nombre de
personnes puisqu'il ne requiert pas de
connaissances particulières et fonctionne, de
plus, sur les systèmes d'exploitation les plus
répandus. [3]

HTML&CSS HTML5 [4] pour HyperTextMarkup Langage 5,


est uneVersion du célèbre format HTML utilisé
pour concevoirles sites Internet. Celui-ci
serésume à un langage debalisage qui
permet,principalement,l’écriture del’hypertexte
indispensable à lamise en forme d’une
pageWeb.

CSS3 [4] pour Cascading Style Sheets 3, est


un langage informatique utilisé sur Internet
pour la mise en forme de fichiers et de pages
HTML.

JavaScript JavaScript [10] est un langage de


programmation de scripts principalement

29
utilisé dans les pages web interactives. Ce
langage permet une interaction avec
l’utilisateur en fonction de ses actions. [5]

PHP7 Le PHP [9] est un langage informatique utilisé


sur l’internet. Le terme PHP est un acronyme
récursif de «Hypertext Preprocessor ». [6]

Bootstrap C’est une collection d’outils utiles à la création


du design(graphisme, animation et interactions
avec la page dans le navigateur, etc.) de sites
et d’application web [13]. [7]

Visual Studio Code Visual Studio Code [12] est un IDE développé
par Microsoft pour Windows, Linux et OSX. [8]

T ABLEAU 6: E NVIRONNEMENT LOGICIEL

3 Modèle physique des données


Un modèle physique de données (MPD) vous aide à analyser les tables, les vues et
autres objets d'une base de données, y compris les objets multidimensionnels nécessaires

30
à l'utilisation d'un entrepôt de données. Un MPD est plus concret qu'un Modèle
Conceptuel de Données (MCD) ou qu'un Modèle Logique de Données (MLD).

Nous pouvons le générer en appliquant les étapes suivantes :

1- Cliquer sur Outils/Générer un Modèle Physique de Données. Une fenêtre s’affiche


sous le titre "Option de génération du MPD".
2- Choisir le SGBD, cocher partager le SGBD, remplir le nom et Cliquer sur OK
(figure 4).

F IGURE 4: G ÉNÉRER LE MODÈLE PHYSIQUE ( ÉTAPES ).

Le MPD de notre étude de cas est créé avec sucées et donné par la figure 5 :

31
F IGURE 5: M ODÈLE PHYSIQUE DES DONNÉES .

4 Création de la base de données


PowerDesigner permet de générer un script de création de base de données que
nous pouvons ensuite exécuter dans l'environnement de votre SGBD, ou bien
générer une structure de base de données directement via une connexion de base de
données (figure 6). Nous devons suivre les étapes suivantes :

32
1- Sélectionner SGBD > Générer une base de données pour afficher la boîte de dialogue
Génération d'une base de données.
2- Saisir un répertoire de destination et un nom de fichier pour le fichier de script dans
les zones Répertoire et Nom de fichier. Puis, sélectionner l'option Génération d'un
script.
3- Cliquer sur l'onglet Options, spécifier les options de création, puis Cliquer sur OK.

F IGURE 6 : G ÉNÉRATION DU SCRIPT DE LA BASE DE DONNÉES ( ÉTAPES ).

Le script de création de la base de données est créé avec succès. Il est décrit en annexe1. Un
extrait est présenté par la figure 7 :

F IGURE 7: E CHANTILLON DU SCRIPT DE LA CRÉATION DE BASE DE DONNÉES

33
PhpMyAdmin est une application web open source conçue pour gérer des bases de données
MySQL via une interface graphique conviviale. Cette application permet aux utilisateurs de
gérer efficacement leurs bases de données MySQL sans avoir à utiliser des commandes SQL
complexes. Avec PhpMyAdmin, les utilisateurs peuvent effectuer diverses tâches telles que
la création de bases de données, de tables, l'exécution de requêtes SQL, l'importation et
l'exportation de données, le tout via une interface web. A cet effet, nous devons suivre les
étapes suivantes :
1. Sélectionner la base de données : Une fois connecté, dans le panneau de gauche de
phpMyAdmin, sélectionner la base de données et exécuter le script. Si la base de
données n'existe pas encore, nous pouvons la créer en cliquant sur "Nouvelle base de
données" et en saisissant son nom.
2. Importer le script SQL : Dans phpMyAdmin, cliquer sur l'onglet "Importer" dans le
menu supérieur. Cela permet de sélectionner le fichier SQL contenant le script de
création de la base de données sur notre ordinateur. Cliquer sur "Choisir un fichier"
pour sélectionner le fichier SQL, puis cliquer sur "Exécuter" pour importer et
exécuter le script.
3. Vérifier l'exécution du script : Une fois le script exécuté, vérifier dans le panneau
de gauche de phpMyAdmin si les tables et les autres objets de la base de données ont
été créés avec succès.

F IGURE 8 : I MPORTATION DU SCRIPT DE LA BASE DE DONNÉES AVEC P HP M Y A DMIN

34
On exécute le script de création de la base de données.

F IGURE 9: E XÉCUTION DE SCRIPT DE CRÉATION DE LA BASE DE DONNÉES .

La création de la base de données a été effectuée avec succès (figure 10).

F IGURE 10: R ÉSULTAT D ' EXÉCUTION DU SCRIPT DE CRÉATION D DE LA BASE DE DONNÉES .

5 Alimentation de la base de données


Nous avons ajouté des tuples dans chacune des tables de la base de données. Un extrait est
présenté dans ce qui suit :

35
F IGURE 11: A LIMENTATION DE LA TABLE CLIENT.

Dans l’annexe 2 vous trouverez le script d’alimentation complet de notre base de données
La figure 12 illustre les différentes tables existantes :

F IGURE 12: L ISTE DES TABLES EXISTANTES .

Un extrait de la table client créée est présenté par la figure 13.

36
F IGURE 13: L ES DONNÉES DE LA TABLE CLIENT.

Conclusion
Après l'élaboration du modèle physique de données et la création de la base de données,
nous allons nous intéresser dans le dernier chapitre à l'interrogation de la base de données et
la formulation des requêtes en SQL.

37
Chapitre 4 : Réalisation et Mise en œuvre

Introduction
La dernière étape du projet est la mise en place et la validation de l'application. Cette étape
est assurée par la présentation des requêtes SQL ainsi que les interfaces dédiés aux différents
utilisateurs

1 Présentation des requêtes en format SQL


Le tableau présent décrit la liste des requêtes formalisées en SQL de MySQL.

R1 Inscription d’un client:

SQL INSERT INTO CLIENT


(nom_C,prenom_C,email_C,telephone_C,adresse_C,mdp_C,date_cre_C)
VALUES
('".$data['nom']."','".$data['prenom']."','".$data['email']."','".
$data['telephone']."','".$data['adresse']."','".$mdphash."', '$date_creation');
R2 Modification des données d’un produit :
SQL UPDATE PRODUIT SET
nom_produit='$nom',description_produit='$description',PRIX_produit='$prix',
image='$image1',id_categorie='$categorie',date_modification_pro
='$date_modification'
WHERE id_produit='$idproduit' ;
R3 Modification des données d’une catégorie :

SQL UPDATE CATEGORIE SET


nom_categorie='$nom',description_categorie ='$description' WHERE `id-
categorie`='$idcategorie';
R4 Modification des données d’une sous-catégorie :

SQL UPDATE SOUSCATEGORIE SET nom_souscategorie='$nom',description_sous-


categorie ='$description'
WHERE `id_souscategorie`='$idsouscategorie';

38
R5 Suppression d’une catégorie :

SQL DELETE FROM CATEGORIE WHERE `id-categorie`='$idcategorie;


R6 Suppression d’un produit:

SQL DELETE FROM PRODUIT WHERE `id-produit`='$idproduit;


R7 Suppression d’une sous-catégorie:

SQL DELETE FROM SOUSCATEGORIE WHERE `id


souscategorie`='$idsouscategorie;
R8 Chercher produit par nom :

SQL SELECT * FROM PRODUIT WHERE nom_produit LIKE '%$keyword%';


R9 Sélectionner nom,prix,image d’un produit :

SQL SELECT PRIX_produit,nom_produit,image-principale FROM PRODUIT WHERE


id_produit='$id_produit ;
R10 Sélectionner id,montant totale d’une panier par id client:

SQL SELECT id_panier,montant-totale_panier FROM PANIER WHERE id_client=$client;


R11 Vérification de l’adresse et de mot de passe :

SQL SELECT * FROM CLIENT WHERE telephone_C='$tel' AND mdp_C='$mdp'


SELECT * FROM ADMINISTRATEUR WHERE telephone_admin='$tel' AND
mdp_admin='$mdp';
R12 Sélectionner panier par id client :

SQL SELECT id_panier FROM PANIER WHERE id_client=$id;


R13 Sélectionner ligne de panier par id panier :

SQL SELECT * FROM ligne-panier WHERE id_panier =$id_panier;


R14 Sélectionner le montant d’un panier :

SQL SELECT montant-totale_panier FROM PANIER WHERE id_client=$id;


R15 Sélectionner toutes les commandes :

SQL SELECT
c.nom,c.prenom,c.telephone,com.totale,com.statut,com.date_creation,com.id
FROM COMMANDE com,CLIENT c WHERE com.id_client=c.id_client;
R16 Sélectionner toutes les lignes de commandes :

SQL SELECT p.nom_produit, l.prix_ligne, p.image_principale, l.quantite, l.taille,

39
l.id_commande FROM lignepanier l,PRODUIT p WHERE l.id_produit =
p.id_produit ;
R17 Changer l’état d’une commande :

SQL UPDATE COMMANDE SET statut='".$data['etat']."' WHERE


id_commande='".$data['id-commande']."'";
R18 Sélectionner le nom et le prénom du client qui a effectué le maximum de
commandes :
SELECT c.NOM_C, c.PRENOM_C
FROM CLIENT c
WHERE c.ID_CLIENT IN ( SELECT cmd.ID_CLIENT
FROM COMMANDE cmd
GROUP BY cmd.ID_CLIENT
HAVING COUNT(*)=(SELECT MAX(COUNT(*))
FROM COMMANDE cmd
GROUP BY cmd.ID_CLIENT));

R19 Sélectionner le produit le plus commandé :


SELECT NOM_PRODUIT
FROM PRODUIT
WHERE
ID_PRODUIT = ( SELECT ID_PRODUIT
FROM LIGNE_PANIER L
GROUP BY ID_PRODUIT
ORDER BY COUNT(*) DESC)
LIMIT 1 );
R20 Donner la somme totale des commandes effectuées le 21/5/2024
SELECT SUM(MONTANT_TOTALE_COMMANDE) AS TotalCommandes
FROM COMMANDE
WHERE DATE_CRE_COMMANDE = '2024-05-21';

T ABLEAU 7: L A FORMULATION EN SQL

40
2 Réalisation de l’application web
2.1 Les Interfaces de l’espace client

2.1.1. Interface d’authentification

La figure 14 représente l’interface d’authentification pour les utilisateurs dans laquelle en


vérifie l’existence de numéro de téléphone et le mot de passe dans la base de données.

F IGURE 14: Interface d’authentification des clients.

La figure 15 illustre l'interface de création de compte pour les utilisateurs afin de récupérer
les données personnelles telles que le nom, le prénom, l’adresse, le numéro de téléphone,
l’e-mail et le mot de passe d'un utilisateur.

F IGURE 15: I NTERFACE D ’ INSCRIPTION DES CLIENTS .

41
2.1.2 Interface d’accueil

Les figures 16 et 17 présentent la première page de notre application web lors de la visite,
laquelle inclut une barre de navigation, une interface de recherche, arrière-plan dynamique
sous forme d’image ainsi que des cartes affichant des produits proposés.

F IGURE 16: P ARTIE UNE DE L ’ ACCUEIL .

F IGURE 17: D EUXIÈME PARTIE DE L ’ ACCUEIL .

42
La deuxième partie de l’accueil de notre site fait représenter des différents produits
proposés présentés par des cartes incluent les noms et les prix.

2.1.3 Interface de catégorie

Les figures 18 et 19 présentent l’interface de page catégorie : femme dans laquelle on


inclut un arrière-plan qui présente la catégorie femme ainsi des cartes affichantes les
différents produits de cette catégorie,

F IGURE 18: P ARTIE UNE DE LA PAGE CATÉGORIE FEMME .

F IGURE 19 : D EUXIÈME PARTIE DE LA PAGE CATÉGORIE FEMME .

43
2.1.4 Interface des détails du produit

La figure 20 illustre l'interface de la page détaillée du produit. Elle comporte le nom du


produit, son prix, une description détaillée, plusieurs images du produit, ainsi qu'un
formulaire permettant au client de spécifier la taille et la quantité désirée du produit.

F IGURE 20: I NTERFACE DÉTAILS DU PRODUIT

2.1.5 Interface du Panier

La figure 21 présente l'interface du panier qui affiche les articles sélectionnés par le client
pour achat. Elle répertorie les produits avec leurs noms, prix, quantités sélectionnées, Le
totale de la commande, ainsi que des options pour supprimer des articles ou commander le
panier.

44
F IGURE 21 : I NTERFACE DU PANIER .

2.1.5 Interface contact

La figure 22 présente la page de contact du site web offre aux visiteurs divers moyens de
communication avec l'équipe ou l'entreprise. Elle présente un formulaire de contact, une
adresse mail, un numéro de téléphone, les liens vers les réseaux sociaux et éventuellement
une adresse physique.

45
F IGURE 22: I NTERFACE CONTACT

2.2 Les Interfaces de l’espace Administrateur

2.2.1 Interface d’authentification

La figure 23 présente l’interface d’authentification pour l’administrateur dans


laquelle en vérifie l’existence de numéro de téléphone et le mot de passe dans la base
de données.

F IGURE 23: I NTERFACE D ’ AUTHENTIFICATION DE L ’ ADMINISTRATEUR

46
2.2.2 Interface profile

La figure 24 illustre l'interface du profile affiche les articles sélectionnés par le client pour
achat. Elle répertorie les produits avec leurs noms, prix, quantités sélectionnées, Le total de
la commande, ainsi que des options pour modifier les quantités, supprimer des articles ou
commander le panier.

F IGURE 24: I NTERFACE PROFILE

2.2.3 Interface produit de l’administrateur

La figure 25 illustre L’interface des produits ou un administrateur peut ajouter, modifier ou


supprimer un produit.

F IGURE 25: I NTERFACE DES COMMANDES .

47
2.2.4 Interface « commande » de l’administrateur

La figure 26 illustre l’interface des commandes où l'admin gère les commandes des clients.
Elle permet de visualiser, traiter et suivre toutes les commandes passées sur le site. Cette
page offre des fonctionnalités telles que la recherche par numéro de commande, le filtrage
par statut de commande (en cours, en livraison, livraison terminée, etc.).

F IGURE 26: L’ INTERFACE DES COMMANDES .

2.2.5 Interface de contenu de la commande pour l’administrateur

La figure 27 propose une représentation visuelle de l'interface dédiée au suivi des


commandes. Chaque ligne du tableau correspond à une commande spécifique offrant ainsi
une vue claire et organisée de l'ensemble de la commande.

48
F IGURE 27 : I NTERFACE DE CONTENU DE LA COMMANDE .

2.2.6 Interface d’insertion de produit pour l’administrateur

La figure 28 illustre l'interface d'insertion de produit pour l'administrateur à travers laquelle


l’administrateur peut ajouter de nouveaux produits au catalogue de manière efficace
permettant de saisir les détails pertinents de chaque produit, tels que son nom, sa description,
son prix et ses images associées.

F IGURE 28: I NTERFACE D ' INSERTION DE PRODUIT

2.2.7 Interface de traitement de la commande pour l’administrateur

49
La figure 29 illustre l'interface de traitement de la commande. Cette interface offre une
vue d'ensemble des commandes en attente, en cours ou déjà traitées, permettant ainsi de
suivre facilement l'état de chaque commande.

F IGURE 29 : I NTERFACE DE TRAITEMENT DE LA COMMANDE

Conclusion

Ce chapitre a décrit la structure de notre site web ainsi que les services qu’offre ce site ;
c’est sa partie dynamique. Nous allons résumer notre travail et les points que nous avons
appris dans la conclusion générale.

50
Conclusion générale
Dans le cadre de notre projet de fin d'année, nous avons eu l'occasion d'appliquer les
connaissances acquises lors de nos cours sur les bases de données et le développement web à
la création d'une application web de vente en ligne dans le secteur de la mode.

Nous avons utilisé nos compétences dans la génération de modèles conceptuel, logique et
physique de la base de données, ainsi que notre maîtrise du langage SQL de MySQL pour
gérer les données. Parallèlement, nos connaissances en développement web, notamment en
HTML, CSS, Bootstrap, JavaScript et PHP, nous ont permis de concevoir une interface web
interactive et conviviale pour notre site de vente en ligne.

En termes de perspectives, envisageons d'intégrer des solutions de paiement en ligne


sécurisées et variées afin de garantir une expérience d'achat fluide pour nos clients. Cette
intégration renforcerait la sécurité des transactions et la confiance des clients dans leurs
achats en ligne. De plus, le développement d'une application mobile complète pourrait
enrichir l'expérience client en offrant une plateforme pratique pour les achats en
déplacement.

51
Bibliographie
[1] Gruau, C. (2006). Conception d’une base de données. Cyril Gruau–MERISE–Club
d’entraide des développeurs francophones.

[2] Heurtel, O. (2014). PHP y MySQL. Domine el desarrollo de un sitio web dinámico e
interactivo. Barcelona: ENI.

[3] Delprato, J. M. (2014). PrestaShop: Créez un site e-commerce complet. Pearson


Education France.

[4] Vastersavendts, G. P. (1999). Feuilles de style en cascade: documents HTML, mise en


forme, CSS.

[5] Flanagan, D. (2003). JavaScript: précis [et] concis. O'Reilly Media, Inc..

[6] Lerdorf, R. (2003). PHP. Précis et concis. O'Reilly Media, Inc..

[7] Rapacchi, B. (1994). Une introduction au bootstrap. Centre interuniversitaire de calcul


Grenoble.

[8] Chandler, D. (2022). Un système de signaux maritimes: Saussure’s Example of a Visual


Code. Language and Semiotic Studies, 8(1), 133-144.

52
Annexe1 : Script de création de la base de données
/
*==============================================================*/
/* Nom de SGBD : MySQL 5.0 */
/* Date de création : 5/3/2024 1:37:59 AM */
/*==============================================================*
drop table if exists ADMINISTRATEUR;

drop table if exists CATEGORIE;

drop table if exists CLIENT;

drop table if exists COMMANDE;

drop table if exists IMAGE;

drop table if exists LIGNE_PANIER;

drop table if exists PANIER;

drop table if exists PRODUIT;

drop table if exists SOUS_CATEGORIE;


/*==============================================================*
Table: ADMINISTRATEUR
/*==============================================================*
create table ADMINISTRATEUR
(
ID_ADMIN int not null,
NOM_ADMIN varchar(50),
PRENOM_ADMIN varchar(50),

53
EMAIL_ADMIN varchar(100),
TELEPHONE_ADMIN int,
MDP_ADMIN varchar(50),
primary key (ID_ADMIN)
);
/*==============================================================*
Table: CATEGORIE
/*==============================================================*
create table CATEGORIE
(
ID_CATEGORIE int not null,
ID_ADMIN int not null,
NOM_CATEGORIE varchar(50),
DESCRIPTION_CATEGORIE varchar(100),
DATE_CRE_CATEGORIE date,
primary key (ID_CATEGORIE)
);
/*==============================================================*
Table: CLIENT
/*==============================================================*
create table CLIENT
(
ID_CLIENT int not null,
NOM_C varchar(100),
PRENOM_C varchar(100),
ADRESSE_C varchar(250),
EMAIL_C varchar(100),
MDP_C varchar(50),
TELEPHONE_C int,
DATE_CRE_C date,
primary key (ID_CLIENT)
);
/*==============================================================*

54
Table: COMMANDE
/*==============================================================*
create table COMMANDE
(
ID_COMMANDE int not null,
ID_ADMIN int not null,
ID_CLIENT int not null,
MONTANT_TOTALE_COMMANDE float,
STATUT varchar(200),
DATE_CRE_COMMANDE date,
DATE_MODI_COMMANDE date,
primary key (ID_COMMANDE)
);
/*==============================================================*
Table: IMAGE
/*==============================================================*
create table IMAGE
(
ID_IMAGE int not null,
ID_PRODUIT int not null,
NOM_IMAGE varchar(50),
primary key (ID_IMAGE)
);
/*==============================================================*
Table : LIGNE_PANIER
/*==============================================================*
create table LIGNE_PANIER
(
ID_LIGNE int not null,
ID_PRODUIT int not null,
ID_PANIER int not null,
ID_COMMANDE int not null,
QUANTITE int,

55
TAILLE int,
PRIX_LIGNE float,
DATE_CRE_LIGNE date,
DATE_MOD_LIGNE date,
primary key (ID_LIGNE)
);
/*==============================================================*
Table : PANIER
/*==============================================================*
create table PANIER
(
ID_PANIER int not null,
ID_CLIENT int not null,
MONTANT_TOTALE_PANIER float,
ETAT varchar(50),
DATE_CRE_P date,
primary key (ID_PANIER)
);
/*==============================================================*
Table: PRODUIT
/*==============================================================*
create table PRODUIT
(
ID_PRODUIT int not null,
ID_CATEGORIE int not null,
ID_ADMIN int not null,
NOM_PRODUIT varchar(50),
PRIX_PRODUIT float,
DESCRIPTION_PRODUIT varchar(100),
IMAGE_PRINCIPALE varchar(200),
DATE_CREATION_PRO date,
DATE_MODIFICATION_PRO date,
primary key (ID_PRODUIT)

56
);

/*==============================================================*
Table : SOUS_CATEGORIE
/*==============================================================*
create table SOUS_CATEGORIE
(
ID_SOUSCATEGORIE int not null,
ID_CATEGORIE int not null,
NOM_SOUS_CATEGORIE varchar(50),
DESCRIPTION_SOUS_CATEGORIE varchar(50),
DATE_CRE_SOUSCAT date,
primary key (ID_SOUSCATEGORIE)
);

alter table CATEGORIE add constraint FK_DIRIGER foreign key (ID_ADMIN)


references ADMINISTRATEUR (ID_ADMIN) on delete restrict on update restrict;

alter table COMMANDE add constraint FK_PASSER foreign key (ID_CLIENT)


references CLIENT (ID_CLIENT) on delete restrict on update restrict;

alter table COMMANDE add constraint FK_VALIDER foreign key (ID_ADMIN)


references ADMINISTRATEUR (ID_ADMIN) on delete restrict on update restrict;

alter table IMAGE add constraint FK_OBTENIR foreign key (ID_PRODUIT)


references PRODUIT (ID_PRODUIT) on delete restrict on update restrict;

alter table LIGNE_PANIER add constraint FK_CONTENIR foreign key (ID_PRODUIT)


references PRODUIT (ID_PRODUIT) on delete restrict on update restrict;

alter table LIGNE_PANIER add constraint FK_INCLUE1 foreign key (ID_PANIER)


references PANIER (ID_PANIER) on delete restrict on update restrict;

alter table LIGNE_PANIER add constraint FK_INCLUE2 foreign key

57
(ID_COMMANDE)
references COMMANDE (ID_COMMANDE) on delete restrict on update restrict;

alter table PANIER add constraint FK_POSSEDE foreign key (ID_CLIENT)


references CLIENT (ID_CLIENT) on delete restrict on update restrict;

alter table PRODUIT add constraint FK_APPARTENIR foreign key (ID_CATEGORIE)


references CATEGORIE (ID_CATEGORIE) on delete restrict on update restrict;

alter table PRODUIT add constraint FK_GERER foreign key (ID_ADMIN)


references ADMINISTRATEUR (ID_ADMIN) on delete restrict on update restrict;

alter table SOUS_CATEGORIE add constraint FK_AVOIR foreign key


(ID_CATEGORIE)
references CATEGORIE (ID_CATEGORIE) on delete restrict on update restrict;

58
Annexe 2 : Script d’alimentation de la base de données
======================================================================

Alimentation de la table ADMINISTRATEUR


======================================================================

INSERT INTO ADMINISTRATEUR (id_admin, nom_admin, prenom_admin, email_admin,

telephone_admin, mdp_admin)

VALUES

(1, 'Admin', 'Admin', 'admin@example.com', 1234567890, 'admin123'),

=======================================================================

Alimentation de la table CATEGORIE


=======================================================================

INSERT INTO CATEGORIE (id_categorie, id_admin, nom_categorie, description_categorie,

date_cre_categorie)

VALUES

(1, 1, 'Hommes', 'Vêtements pour hommes', '2024-05-01'),

(2, 2, 'Femmes', 'Vêtements pour femmes', '2024-05-01'),

(3, 3, 'Enfants', 'Vêtements pour enfants', '2024-05-01'),

=======================================================================

Alimentation de la table CLIENT


===============================================
INSERT INTO CLIENT (id_client, nom_c, prenom_c, adresse_c, email_c, mdp_c, telephone_c,

date_cre_c)

VALUES

(1, 'Zaghdoudi', 'Nidhal', 'Sousse, 'zagh.nidhal@gmail.com', 'nidhal123', 12345678, '2024-05-01'),

(2, 'barka', 'Mohaned', '8 avenue fouchana, 'barka.mohaned@yahoo.com', '123', 98543210, '2024-05-

01'),

59
(3, 'maktouf', 'Karim', '5 rue de Ariana, 'karim.karim@yahoo.com', 'karim123', 22567890, '2024-05-

01'),

(4, 'abdo', 'abed', 'Sfax, 'abed.abed@gmail.com', '145123', 98743210, '2024-05-01');

=======================================================================

Alimentation de la table COMMANDE


=======================================================================

INSERT INTO COMMANDE (id_commande, id_admin, id_client, montant_totale_commande,

statut, date_cre_commande, date_modi_commande)

VALUES

(1, 1, 1, 150.00, 'En cours', '2024-05-01', '2024-05-01'),

(2, 2, 2, 200.00, 'En Livraison', '2024-05-01', '2024-05-01'),

(3, 3, 3, 100.50, 'En cours', '2024-05-01', '2024-05-01'),

(4, 4, 4, 75.25, ' Livraison Terminée', '2024-05-01', '2024-05-01');

=======================================================================

Alimentation de la table IMAGE


================================
INSERT INTO IMAGE (id_image, id_produit, nom_image)

VALUES

(1, 1, 'chemise_homme.jpg'),

(2, 2, 'robe_femme.jpg'),

(3, 3, 'pull_enfant.jpg'),

(4, 4, 'sac_accessoire.jpg');

================================
Alimentation de la table ligne_panier

60
================================
INSERT INTO ligne_panier (id_ligne, id_produit, id_panier, id_commande, quantite, taille,

prix_ligne, date_cre_ligne, date_mod_ligne)

VALUES

(1, 1, 1, 1, 1, 'M', 50.00, '2024-05-01', '2024-05-01'),

(2, 2, 1, 2, 1, 'S', 100.00, '2024-05-01', '2024-05-01'),

(3, 3, 1, 3, 2, 'L', 75.50, '2024-05-01', '2024-05-01'),

(4, 4, 1, 4, 1, NULL, 25.75, '2024-05-01', '2024-05-01');

=======================================================================

Alimentation de la table PANIER


================================
INSERT INTO PANIER (id_panier, id_client, montant_totale_panier, etat, date_cre_p)

VALUES

(1, 1, 225.50, 'En cours', '2024-05-01'),

(2, 2, 100.00, 'Expédiée', '2024-05-01'),

(3, 3, 75.50, 'En cours', '2024-05-01'),

(4, 4, 50.00, 'En attente', '2024-05-01');

=======================================================================

Alimentation de la table PRODUIT


================================
INSERT INTO PRODUIT (id_produit, id_categorie, id_admin, nom_produit, prix_produit,

description_produit, image_principale, date_creation_pro, date_modification_pro)

VALUES

(1, 1, 1, 'Chemise Homme', 50.00, 'Chemise élégante pour hommes', 'chemise_homme.jpg', '2024-

05-01', '2024-05-01'),

(2, 2, 2, 'Robe Femme', 100.00, 'Robe élégante pour femmes', 'robe_femme.jpg', '2024-05-01',

61
'2024-05-01'),

(3, 3, 3, 'Pull Enfant', 37.75, 'Pull chaud pour enfants', 'pull_enfant.jpg', '2024-05-01', '2024-05-01'),

=======================================================================

Alimentation de la table SOUS-CATEGORIE


================================

INSERT INTO SOUS_CATEGORIE (id_souscategorie, id_categorie, nom_sous_categorie,

description_sous_categorie, date_cre_souscat)

VALUES

(1, 1, 'Chemises', 'Chemises pour hommes', '2024-05-01'),

(2, 2, 'Robes', 'Robes pour femmes', '2024-05-01'),

(3, 3, 'Pulls', 'Pulls pour enfants', '2024-05-01'),

(4, 4, 'Sacs', 'Sacs à main et sacs à dos', '2024-05-01');

Annexe 3 : Code de la connexion interface web à la base de


données

62
F IGURE 30 : C ODE DE LA CONNEXION INTERFACE WEB À LA BASE DE DONNÉES

63
Résumé
Ce projet fait partie d'un projet de fin d'année axé sur la conception et la réalisation d'une application web de
vente en ligne. L'objectif est de fournir aux utilisateurs une plateforme fonctionnelle pour effectuer des
achats en ligne. Pour l'administrateur, l'objectif est de mettre en place un tableau de bord permettant de gérer
efficacement les produits, les commandes, les clients et d'autres aspects liés au fonctionnement du site e-
commerce.
Pour le réaliser nous avons utilisé PowerDesigner pour la modélisation et la conception de la base de
données et MySQL 5.0, pour création et gestion nous avons utilisé les langages HTML, CSS, JS, Bootstrap
pour la partie front du site et PHP pour la partie back.
Mots clés : Application Web Dynamique, vente en ligne, conception de la base de données,
PHP,HTML ,CSS,BOOTSTRAP, PowerDesigner, MySQL 5.0.

Abstract
This project is part of an end-of-year project focused on designing and implementing an e-commerce
website. The goal is to provide users with a functional platform for online shopping. For the administrator,
the objective is to establish a dashboard to efficiently manage products, orders, customers, and other aspects
related to the operation of the e-commerce site.
To accomplish this, we used PowerDesigner for database modeling and design, and MySQL 5.0 for creation
and management. We utilized HTML, CSS, JS, and Bootstrap for the front-end of the site, and PHP for the
back-end.
Keywords: Dynamic Website, Online Sales, Database Design, PHP, HTML, CSS, Bootstrap,
PowerDesigner, MySQL 5.0.

‫الملخص‬
‫هذا المشروع جزء من مشروع نهاية العام مركز على تصميم وتنفيذ موقع ويب للتجارة‬
‫ بالنسبة‬.‫ الهدف هو توفير منصة وظيفية للمستخدمين للتسوق عبر اإلنترنت‬.‫اإللكترونية‬
‫ الهدف هو إنشاء لوحة تحكم إلدارة المنتجات والطلبات والعمالء وجوانب أخرى‬،‫للمسؤول‬
‫متعلقة بتشغيل موقع التجارة اإللكترونية بكفاءة‬
MySQL 5.0 ‫و‬،‫ لتصميم ونمذجة قاعدة البيانات‬PowerDesigner‫ استخدمنا‬،‫لتحقيق ذلك‬
PHP ‫ و‬،‫ للواجهة األمامية للموقع‬Bootstrap‫ و‬JS ‫ و‬CSS ‫ و‬HTML ‫ واستخدمنا‬.‫لإلنشاء واإلدارة‬
.‫للواجهة الخلفية‬
،‫ تصميم قاعدة البيانات‬،‫ مبيعات عبر اإلنترنت‬،‫ موقع ويب ديناميكي‬:‫الكلمات الرئيسية‬
.PHP، HTML، CSS، Bootstrap، PowerDesigner، MySQL 5.0

64
65

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy