Application Web de Gestion de Restaurant
Application Web de Gestion de Restaurant
Présenté par
HANAE ENNAJI
Devant le jury
Je dédie ce travail
À mes chers parents, pour leur amour, leur soutien et leur patience tout au long de mes études.
Vous m'avez apporté de tendresse, de soutien et d’appuie sans épargne. Quoique je fasse, je
ne saurais vous faire graine de vos sacrifices.
À mes chers enseignants de mémoire, pour leurs conseils, leurs encadrements et leurs
disponibilités.
Je souhaite exprimer ma gratitude sincère envers mes frères pour leur soutien précieux tout au
long de mon projet de fin d'études.
À mes amis, pour leur soutien moral et leur aide précieuse pendant cette période de travail
intensif. A toutes les personnes qui ont participé de près ou de loin à la réalisation de ce travail.
REMERCIEMENT
Je tiens à exprimer mes sincères remerciements à toutes les personnes qui m'ont soutenu tout au long
de la réalisation de ce projet de fin d'études. Mohammed Hakiki, pour sa disponibilité, ses conseils et
son expertise précieuse, m'a été d'une grande aide pour mener à bien ce travail. Je souhaite
également exprimer ma gratitude envers toutes les autres personnes impliquées pour leur soutien
constant et leurs conseils précieux tout au long du projet. Leur encouragement et leur confiance ont
été essentiels pour surmonter les défis rencontrés. Sans leur soutien, cette réussite n'aurait pas été
RESUME
Le présent document résume le projet que j'ai développé en solitaire dans le cadre de mon stage
de fin d'études pour une durée de deux mois, en vue de l'obtention de mon diplôme de licence
professionnelle en Génie Informatique. Le projet, nommé "RestoWeb", est une application web
de restauration destinée à faciliter le processus de commande de nourriture en ligne pour un
restaurant spécifique.
L'objectif de RestoWeb est de fournir une plateforme conviviale et intuitive aux clients du
restaurant, leur permettant de passer des commandes en ligne et de découvrir les différents plats
et menus proposés. L'application vise à améliorer l'expérience des clients en offrant une
solution pratique et efficace pour commander leur nourriture préférée. En utilisant RestoWeb,
les clients peuvent accéder au notre application, explorer le menu, visualiser les descriptions et
les prix des plats, et passer des commandes en quelques clics. L'application permet également
aux clients de personnaliser leurs commandes en ajoutant des notes spéciales.
Du côté du restaurant, RestoWeb offre un tableau de bord intuitif pour gérer les commandes
entrantes, gérer les catégories et gérer les menus. Le restaurant peut facilement mettre à jour les
plats disponibles et ajuster les prix.
INTRODUCTION GENERALE
Dans le premier chapitre, nous présenterons le cadre général de notre projet de fin d'études, ainsi
que l'organisme d'accueil dans lequel nous avons réalisé notre travail. Nous détaillerons les
objectifs de notre application web de restauration
Dans le deuxième chapitre, nous nous pencherons sur la partie conceptuelle de notre
application web de restauration. Nous décrirons en détail l'environnement de travail dans lequel
nous avons développé l'application, y compris les outils et les technologies utilisés.
Dans ce dernier chapitre, nous aborderons les différentes interfaces qui composent notre projet.
Nous définirons le but spécifique de chaque interface, en mettant en évidence leur rôle dans
l'expérience utilisateur globale.
6
Tables des matières
INTRODUCTION GENERALE...................................................................................................................6
LISTE DES FIGURES..................................................................................................................................9
LISTE DES TABLEAUX............................................................................................................................11
CHAPITRE 1 : CONTEXTE GENERAL...................................................................................................12
I. Introduction..........................................................................................................................................12
CHAPITRE 2: ÉTUDE CONCEPTUELLE ET ENVIRONNEMENT DE TRAVAIL.............................16
I. Introduction..........................................................................................................................................16
II. Analyse fonctionnelle..........................................................................................................................16
II.1 Diagramme de cas d’utilisation « Use Case»................................................................................16
II.2 Diagramme de séquence.......................................................................................................21
III. Analyse conceptuelle.........................................................................................................................26
III.1 Diagramme de classes : « Module Bases»............................................................................26
III.2 Modèle physique de données..............................................................................................28
IV. Le model MVC..................................................................................................................................29
IV.1. Définition:..................................................................................................................................29
V. Environnement et outils de travail..............................................................................................30
V.1. Les outils de travail..............................................................................................................30
V.2. L'environnement de développement Microsoft Visual Studio...............................................33
7
Tables des matières
VI. Conclusion.................................................................................................................................34
CHAPITRE 3: MISE EN ŒUVRE DU PROJET.......................................................................................35
I. Introduction..........................................................................................................................................35
II. Mise en œuvre des interfaces..............................................................................................................35
III. Conclusion:........................................................................................................................................57
IV.................................................................................................................................................................
CONCLUSION GENERALE ET PERSPECTIVES.....................................................................................58
8
Liste des figures
9
Figure 37: Commande d'une table.............................................................................................................50
Figure 38: Gestion des produits.................................................................................................................50
Figure 39: Modifier Plats...........................................................................................................................51
Figure 40: Ajouter Plats.............................................................................................................................51
Figure 41: Listes des catégories menues....................................................................................................52
Figure 42: Ajouter des catégories au menues............................................................................................52
Figure 43: Succès menu ajouter.................................................................................................................52
Figure 44:Succès menu modifié.................................................................................................................53
Figure 45: Succès menu supprimé..............................................................................................................53
Figure 46: Affichages des employées.........................................................................................................54
Figure 47: Ajouter des employées..............................................................................................................55
Figure 48: Ajouter avec succès alert (employe)..........................................................................................55
Figure 49: Modifier employées..................................................................................................................56
Figure 50: Modifier succès alert employée................................................................................................56
Figure 51: Profile employée.......................................................................................................................56
Figure 52: Suppression aler employée.......................................................................................................57
10
Chapitre 1 : Présentation de l’organisme d’accueil
nous cherchons à réduire les erreurs de commande, à rationaliser les processus de commande et
de livraison, à diminuer les coûts d'exploitation et à améliorer la satisfaction des clients en leur
11
Chapitre 2: Étude conceptuelle et environnement de travail
CHAPITRE 2: ÉTUDE CONCEPTUELLE ET ENVIRONNEMENT DE
TRAVAIL
I. Introduction:
Au sein de ce chapitre, On s’intéresse à la partie conceptuelle ainsi que l'environnement de
travail de notre application web de restauration, laquelle a été développée en utilisant le
framework Laravel. L'objectif de ce chapitre est de vous donner un aperçu détaillé des
principaux aspects de cette application, et de poser les bases nécessaires pour les discussions à
venir.
12
Chapitre 2: Étude conceptuelle et environnement de travail
13
Chapitre 2: Étude conceptuelle et environnement de travail
II.1.2 :diagramme de cas d’utilisation client:
L'utilisateur : il s'agit de la personne qui utilise l'application pour passer une commande,
consulter le menu, suivre une commande, créer un compte ou modifier son profil
existant.
14
Chapitre 2 : Étude conceptuelle et environnement de travail
Un acteur secondaire dans un cas d'utilisation est un acteur qui interagit de manière occasionnelle
ou indirecte avec le système, mais qui n'est pas considéré comme un acteur principal ou central.
Dans notre cas, nous avons identifié, la carte de crédit et le caissier comme des acteurs
secondaires impliqués dans le processus de paiement. Ces acteurs secondaires interagissent de
manière indirecte avec le système pour faciliter les transactions financières.
système banque.
caissier.
Authentification
Passer une commande
Consulter le menu
Choisir le type de livraison.
Effectuer le paiement.
Aide: le client peut consulter l'aide en cas de problèmes rencontrés lors de la
commande. L'aide est une ressource mise à sa disposition pour obtenir des
informations supplémentaires, des instructions ou des solutions aux problèmes courants
liés au processus de commande.
Déconnexion.
15
Chapitre 2 : Étude conceptuelle et environnement de travail
L’acteur principal:
Dans le diagramme de cas d'utilisation au dessus proposé pour notre application web de restauration, il
y a un acteur principal :
L'administrateur : il s'agit d'un utilisateur spécial qui a des droits supplémentaires par
rapport à l'utilisateur standard. L'administrateur peut créer, modifier ou supprimer
des plats dans le menu proposé par le restaurant.
Authentification
Gérer un menu
Un administrateur gérer menu
Suivre une commande
16
Chapitre 2 : Étude conceptuelle et environnement de travail
17
Chapitre 2 : Étude conceptuelle et environnement de travail
Dans ce diagramme, l'utilisateur entre ses identifiants (nom d'utilisateur et mot de passe) dans le
système d'authentification. Le système d'authentification vérifie ces identifiants en les
recherchant dans la base de données. La base de données renvoie le résultat de la recherche au
système d'authentification, qui vérifie ensuite si les identifiants sont valides. Finalement, le
résultat de l'authentification est renvoyé à l'utilisateur, qui l'affiche.
18
Chapitre 2 : Étude conceptuelle et environnement de travail
Dans ce diagramme de séquence, nous avons simplifié les tâches que l'administrateur
peut effectuer dans l'application.
19
Chapitre 2 : Étude conceptuelle et environnement de travail
20
Chapitre 2 : Étude conceptuelle et environnement de travail
II.2.4 :diagramme de séquence Paiement:
21
Chapitre 2 : Étude conceptuelle et environnement de travail
Le diagramme de classe de notre application web de restauration nous offre une vision claire de
la structure et du fonctionnement du système. Il nous permet de visualiser les différentes
classes et les relations entre elles, ce qui facilite la conception, le développement et la
maintenance de notre application. Grâce à ce diagramme, nous pouvons mieux comprendre
comment les différentes classes interagissent et coopèrent pour offrir les fonctionnalités de
commande, de gestion des menus, des promotions, etc. Cela nous aide à prendre des décisions
éclairées lors de la mise en œuvre de nouvelles fonctionnalités ou de l'optimisation du système
existant. En somme, le diagramme de classe est un outil précieux pour assurer la cohérence et
la stabilité de notre application web de restauration.
22
Figure 9: Diagramme de classe
23
Chapitre 2 : Étude conceptuelle et environnement de travail
III.2 Modèle physique de données:
24
Chapitre 2 : Étude conceptuelle et environnement de travail
Model: représente le cœur de l'application et gère les traitements et les interactions liés
aux données, y compris l'accès à la base de données. Il définit la structure des données
25
Chapitre 2 : Étude conceptuelle et environnement de travail
manipulées et assure leur intégrité. Cela inclut des méthodes pour mettre à jour les
données (insertion, suppression, modification) ainsi que pour les récupérer. Le modèle ne
se soucie pas de la présentation des données et n'a aucun lien direct avec la vue.
View:est responsable de l'interaction avec l'utilisateur. Sa première tâche consiste à
afficher les résultats renvoyés par le modèle. Sa deuxième tâche est de recevoir les actions
de l'utilisateur telles que les clics de souris, les sélections de boutons radio, les cases à
cocher, etc. Ces événements sont ensuite transmis au contrôleur. La vue ne réalise aucun
traitement, elle se limite à afficher les résultats des traitements effectués par le modèle et à
interagir avec l'utilisateur.
Controller: gère la gestion des événements, synchronisant la mise à jour de la vue ou du
modèle. Il reçoit tous les événements de l'utilisateur et déclenche les actions nécessaires.
Si une action nécessite une modification des données, le contrôleur demande au modèle de
mettre à jour les données, puis les transmet à la vue appropriée pour affichage.
Le choix de l'architecture MVC comme méthodologie d'analyse est motivé par les
avantages suivants :
Une conception claire et efficace : La séparation des données, de la vue et du contrôleur
permet d'avoir une structure bien définie et organisée, ce qui facilite la compréhension et
la maintenance du code.
Une plus grande souplesse pour organiser le développement du site entre différents
développeurs (indépendance des données, de l’affichage et des actions).
26
Chapitre 2 : Étude conceptuelle et environnement de travail
CSS:(Cascading Style Sheets) permet de définir l'apparence visuelle des éléments d'une
page web, tels que la couleur, la police, la mise en page, les marges, les bordures, les
arrière-plans, etc. Avec CSS, les styles peuvent être appliqués de manière sélective à
des éléments spécifiques ou à des groupes d'éléments, en utilisant des sélecteurs CSS.
Cela permet de séparer la structure d'une page web.
PHP: est un langage de script côté serveur qui a été conçu spécifiquement pour le Web.
Le code PHP est inclus dans une page HTML et sera exécuté à chaque fois qu’un
visiteur affichera la page. Le code PHP est interprété au niveau du serveur web et génère
du code HTML ou toute autre donnée affichable dans le navigateur de l’utilisateur.
JS: JavaScript est un langage de programmation polyvalent et orienté objet utilisé
principalement pour le développement web. Il permet d'ajouter des fonctionnalités
interactives et dynamiques aux pages web en manipulant le contenu, la structure et
le comportement de ces pages.
JQuery : est une bibliothèque JavaScript rapide, légère et multiplateforme. Elle
simplifie l'interaction et la manipulation des documents HTML, l'ajout d'animations, la
gestion des événements et la création d'effets visuels sur une page web.
Datatables: est une bibliothèque JavaScript open-source qui permet de gérer, trier,
filtrer et afficher des données tabulaires dans des pages web de manière interactive et
conviviale. Elle offre une grande flexibilité pour manipuler et présenter des ensembles
de données complexes.
MySQL: est un système de gestion de base de données relationnelle (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 monde
27
Chapitre 2 : Étude conceptuelle et environnement de travail
Lors du choix du framework, nous avons pris en compte plusieurs critères. Tout d'abord, nous
avons effectué une recherche sur les tendances de popularité des frameworks PHP actuels.
D'après les statistiques, présentées dans la figure au dessous nous avons constaté que parmi les 9
principaux frameworks PHP gratuits, Laravel est le plus populaire.
En se basant sur cette information, nous avons considéré que Laravel était un choix solide
pour notre projet. Sa popularité témoigne de sa robustesse, de sa communauté active et de sa
grande adoption dans l'industrie.
Eloquent ORM : Laravel fournit une mise en œuvre avancée du pattern ActiveRecord
appelée Eloquent. Cela permet de manipuler les données de la base de données à
28
traver
29
Chapitre 2 : Étude conceptuelle et environnement de travail
s des objets PHP, en fournissant des méthodes internes pour gérer les relations entre
les objets.
Moteur de templates Blade : Laravel dispose d'un moteur de template appelé Blade,
qui permet de combiner des modèles avec des données pour générer des vues. Blade
traduit les modèles en code PHP mis en cache pour améliorer les performances de rendu.
En plus de ces fonctionnalités clés, Laravel offre un système de routage avancé, un ORM
puissant pour gérer les requêtes SQL, un système d'authentification flexible (Jetstream), un
système de validation, de pagination, d'envoi d'e-mails, de gestion des sessions, de mise en
cache, et bien plus encore. L'ensemble de ces fonctionnalités facilite le développement
d'applications web performantes, sécurisées et évolutives avec Laravel.
Bootstrap: est un framework front-end open-source très populaire, développé par Twitter. Il est
utilisé pour créer des interfaces web réactives et est largement adopté dans le développement
web moderne. Pour bootstrap on a l’utiliser juste pour générer des tableaux.
Visual Studio est un environnement de développement intégré (IDE) développé par Microsoft. Il
offre une large gamme d'outils pour développer différents types de solutions
informatiques, notamment des applications web, des applications de bureau, des applications
mobiles, des jeux, des services et de l'intelligence artificielle. Visual Studio comprend de
nombreuses fonctionnalités puissantes, telles qu'un éditeur de texte avancé, IntelliSense (qui
30
Chapitre 2 : Étude conceptuelle et environnement de travail
VI. Conclusion:
Dans ce chapitre on a souligné l'importance de la phase d'analyse des besoins et de réflexion
pour la conception de notre application web. Cette étape est cruciale dans le cycle de
développement informatique, car elle permet de définir la meilleure structure et les
fonctionnalités nécessaires pour répondre aux exigences du projet. De plus, il est essentiel de
sélectionner les outils de travail appropriés pour la mise en œuvre du développement. Les
choix effectués jusqu'à présent, en termes d'architecture, de frameworks et d'environnement de
développement, joueront un rôle déterminant dans la suite du projet.
La prochaine étape de réalisation du projet sera donc basée sur le travail accompli jusqu'à
présent. Les décisions prises lors de cette phase d'analyse et de conception serviront de base
solide pour le développement de notre application web.
31
Chapitre 3: Mise en Œuvre du Projet
I. Introduction:
L'objectif est d'examiner ces interfaces en détail et d'explorer leurs fonctionnalités. . Notre
objectif sera d'analyser ces interfaces et d'approfondir leur fonctionnement, en mettant l'accent
sur leurs caractéristiques et leurs capacités spécifiques.
32
Chapitre 3: Mise en Œuvre du Projet
33
Chapitre 3: Mise en Œuvre du Projet
34
Chapitre 3: Mise en Œuvre du Projet
Partie Client:
Home Page :
35
Chapitre 3: Mise en Œuvre du Projet
Lorsque le client clique sur My Order , une nouvelle page s'ouvre, présentant le panier du
client qui contient les détails de sa commande en cours, tels que les articles sélectionnés,
les quantités, les prix et les options supplémentaires.
36
Chapitre 3: Mise en Œuvre du Projet
Une fois la commande confirmée, le client doit payer leur commande dans ce cas le client a la
possibilité de choisir le mode de paiement qui lui convient le mieux. Il peut opter pour le
paiement par carte de ou PayPal, ou choisir de régler en espèces.
Paiement en espèce :
Le paiement en espèces dans RestoWeb permet aux clients de régler leur commande
directement en utilisant de l'argent liquide lors de la livraison ou lorsqu'ils se trouvent sur
place dans le restaurant
37
Chapitre 3: Mise en Œuvre du Projet
Paramètre:
Les clients de RestoWeb ont accès à un menu Paramètres où ils peuvent trouver différentes
options. Ils peuvent consulter la section d'Aide en cas de problème rencontré lors de la
commande, trouver des réponses à leurs questions fréquentes et obtenir de l'assistance. De plus,
ils ont la possibilité de consulter les options de sécurité pour modifier leur mot de passe et
assurer la confidentialité de leur compte. Les clients peuvent également accéder à la page À
Propos pour obtenir des informations détaillées sur l'application RestoWeb, son fonctionnement,
ses fonctionnalités et son objectif.
38
Chapitre 3: Mise en Œuvre du Projet
39
Chapitre 3: Mise en Œuvre du Projet
NB:
Dans l'application RestoWeb, le client n'a pas accès à la fonctionnalité de tableau de bord
réservée à l'administrateur. Si un client essaie d'accéder à la page du tableau de bord, il sera re
dirigé vers la page de connexion. Si un client essaie d'accéder à la page de notifications dans
l'application RestoWeb sans avoir les autorisations appropriées, il sera redirigé vers une page
vide ne contient aucune notification.
40
Chapitre 3: Mise en Œuvre du Projet
Cela signifie qu'il ne pourra pas afficher les notifications réservées à d'autres rôles ou
fonctionnalités spécifiques de l'application. Cette différenciation des rôles est mise en œuvre en
utilisant des mécanismes de gestion des autorisations dans le framework Laravel.
Partie Admin:
Dans l'application RestoWeb, la partie administrative comprend des interfaces similaires à celles
des clients. Cela est rendu possible grâce à l'utilisation du mécanisme de gestion des
autorisations dans le framework Laravel. Ainsi, l'administrateur peut également accéder à la
page d'accueil, à la page de confirmation de commande et de paiement, tout comme les clients.
Cela permet à l'administrateur d'effectuer les mêmes tâches que les clients, telles que passer des
commandes, consulter les détails de la commande et effectuer des paiements. Cependant,
l'administrateur a également accès à des fonctionnalités supplémentaires liées à la gestion du
restaurant, telles que la gestion des menus, des employees, des utilisateurs etc.
Dashboard:
Une fois que le client s'est authentifié avec succès, il est redirigé vers le tableau de bord de
l'application.
41
Chapitre 3: Mise en Œuvre du Projet
Le tableau de bord affiche également les commandes dans un tableau, avec des détails. Le statut
de la commande peut être "En attente", "Préparée" ou "Complétée". L'administrateur a le droit
de modifier le statut de la commande pour indiquer son avancement, en le passant à "Complétée"
lorsque la commande est prête à être livrée.
De plus, le tableau de bord comporte un autre tableau qui affiche le nombre de fois où chaque
plat a été commandé, catégorisé par type de plat. Cela permet à l'administrateur de visualiser les
plats populaires et de prendre des décisions éclairées concernant le menu et les promotions.
42
Chapitre 3: Mise en Œuvre du Projet
xle tableau de bord affiche également une section de notifications pour informer l'administrateur
lorsque de nouvelles commandes sont en cours de traitement. Ces notifications sont
généralement accompagnées d'une alerte visuelle utilisant SweetAlert pour attirer l'attention de
l'administrateur sur les actions [Link] par la suite L'administrateur peut cliquer sur la
notification pour accéder à la page de notifications.
43
Chapitre 3: Mise en Œuvre du Projet
Dans cette page, nous présentons les statistiques de notre application RestoWeb. Nous affichons
un tableau qui indique le nombre de fois que chaque plat a été commandé. De plus, nous
utilisons un graphique pour représenter l'utilisation de trois méthodes de réception de
commandes : sur place, livraison et emporter. Enfin, nous utilisons un autre diagramme
interactif qui affiche les cinq meilleurs menus en se basant sur les commandes des clients. Ces
éléments visuels fournissent des informations précieuses sur l'activité de notre application et
aident à prendre des décisions éclairées.
Home page :
44
Chapitre 3: Mise en Œuvre du Projet
Les options d'aide, de sécurité et à propos sont les mêmes que celles disponibles dans les
paramètres du client. Cela est possible grâce à l'utilisation du mécanisme de gestion des
autorisations, permettant de partager les fonctionnalités communes entre les différents rôles
d'utilisateurs de l'application.
Votre restaurant:
45
Chapitre 3: Mise en Œuvre du Projet
46
Chapitre 3: Mise en Œuvre du Projet
Gérer Plat :
47
Chapitre 3: Mise en Œuvre du Projet
Gérer Menu:
48
Chapitre 3: Mise en Œuvre du Projet
49
Chapitre 3: Mise en Œuvre du Projet
L'administrateur est responsable de la création des comptes des employés dans l'application. En
utilisant l'adresse e-mail et le mot de passe fournis, les employés peuvent se connecter à
l'application avec leurs identifiants. Cela permet à l'administrateur de gérer l'accès des employés
à l'application et de leur attribuer les autorisations appropriées en fonction de leurs rôles et
responsabilités. L'administrateur peut également gérer les comptes des employés en effectuant
des modifications ou des suppressions si nécessaire. Cette fonctionnalité assure une gestion
centralisée et sécurisée des comptes des employés dans l'application de restauration.
50
Chapitre 3: Mise en Œuvre du Projet
51
Chapitre 3: Mise en Œuvre du Projet
52
Chapitre 3: Mise en Œuvre du Projet
53
Chapitre 3: Mise en Œuvre du Projet
III. Conclusion:
En conclusion de ce chapitre, nous avons passé en revue les différentes interfaces de notre
application de restauration RestoWeb. Ces interfaces comprennent la page d'accueil, la page de
commande, la page de confirmation de commande et le tableau de bord de l'administrateur.
Chacune de ces interfaces a été conçue pour offrir une expérience conviviale et intuitive aux
utilisateurs, en leur permettant de passer des commandes, de gérer leurs préférences et de
surveiller les activités liées à la restauration. Ces interfaces sont essentielles pour assurer une
interaction fluide et efficace entre les utilisateurs et l'application.
54
Conclusion générale et perspectives
Pendant la réalisation de notre projet, nous avons utilisé le framework Laravel pour développer
l'application. Cela nous a permis de bénéficier de ses fonctionnalités avancées, de sa
modularité et de sa robustesse.
En ce qui concerne les perspectives futures, plusieurs améliorations et évolutions peuvent être
envisagées pour notre application. Par exemple, nous pourrions ajouter une fonctionnalité
permettant la personnalisation des commandes, intégrer des services de livraison tiers et mettre
en place un système de fidélité pour récompenser les clients réguliers. De plus, il serait
intéressant d'étendre l'application à d'autres plateformes, comme les applications mobiles, afin
d'atteindre un public plus large.
55
Bibliographie
BIBLIOGRAPHIE
[Link]
[Link] [consulté le 30 /05/ 2023, [Link]
[Link]
content/uploads/2020/12/23063828/[Link] [consulté le 30 /05/
2023, [Link]
56