Rapport Final PFA2
Rapport Final PFA2
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
Par
Zaghdoudi Nidhal
Composition du jury
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.
ღ 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é.
II
Table des matières
Introduction générale...................................................................................5
1 Contexte du projet.................................................................................7
2 Problématique.......................................................................................7
3 Travail demandé....................................................................................8
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
1 Environnement matériel.......................................................................27
2 Environnement logiciel.........................................................................27
Conclusion générale...................................................................................50
Bibliographie..............................................................................................51
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
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.
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.
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.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.
Ajouter, modifier et supprimer des produits : chaque produit est caractérisé par
son nom et sa catégorie.
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.
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.
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
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)
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
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
13
Définie la entier
quantite de
quantite produit dans
une ligne de
produit
14
3 Règles de gestion
Dans la présente section, nous allons décrire les règles selon leurs types.
15
3.3 Les règles de type « contrainte »
16
3.5 Description des entités
Une description bien détaillée des entités est élaborée dans le tableau 2 :
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
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 .
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 :
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 .
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.
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 ✓ ✓ ✓
25
F IGURE 2: G ÉNÉRATION DU MLD ( ÉTAPES ).
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
RAM 8GO
2 Environnement logiciel
Le tableau 6 résume les logiciels que nous avons utilisé dans notre travail.
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]
29
utilisé dans les pages web interactives. Ce
langage permet une interaction avec
l’utilisateur en fonction de ses actions. [5]
Visual Studio Code Visual Studio Code [12] est un IDE développé
par Microsoft pour Windows, Linux et OSX. [8]
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).
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 .
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.
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 :
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.
34
On exécute le script de création de la base de données.
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 :
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
38
R5 Suppression d’une catégorie :
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 :
39
l.id_commande FROM lignepanier l,PRODUIT p WHERE l.id_produit =
p.id_produit ;
R17 Changer l’état d’une commande :
40
2 Réalisation de l’application web
2.1 Les Interfaces de l’espace client
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.
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.
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.
43
2.1.4 Interface des détails du produit
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 .
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
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.
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.).
48
F IGURE 27 : I NTERFACE DE CONTENU DE LA COMMANDE .
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.
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.
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.
[5] Flanagan, D. (2003). JavaScript: précis [et] concis. O'Reilly Media, Inc..
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;
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)
);
57
(ID_COMMANDE)
references COMMANDE (ID_COMMANDE) on delete restrict on update restrict;
58
Annexe 2 : Script d’alimentation de la base de données
======================================================================
telephone_admin, mdp_admin)
VALUES
=======================================================================
date_cre_categorie)
VALUES
=======================================================================
date_cre_c)
VALUES
(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'),
=======================================================================
VALUES
=======================================================================
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,
VALUES
=======================================================================
VALUES
=======================================================================
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'),
=======================================================================
description_sous_categorie, date_cre_souscat)
VALUES
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