Interface de création de menu et de QRcodes à destination des restaurateurs
Voir la démo
Table des matières
Le projet a pour but de fournir aux restaurateurs un outil leur permettant de dématérialiser la carte de leur restaurant. Il propose une interface d’administration dans laquelle l’utilisateur pourra renseigner le contenu de sa carte : Les différentes catégories telles que les entrées, les plats cuisinés, les boissons, les desserts… ainsi que les différents produits qui composent ces catégories.
Dans un premier temps, les données saisies par l’utilisateur permettront la génération d’un site au format responsive qui sera accessible en scannant un qrcode qui aura été généré également dans l’interface d’administration.
Le client qui aura scanné le QRCode aura la possibilté de passer une commande via le menu.
Dès qu'une commande sera passée, elle sera accessible directement dans l'interface d'administration. Le restaurateur gagne un temps précieux.
Cette section liste les technologies utilisées dans le cadre de ce projet
- HTML\CSS
- Javascript
- Python\Flask
- PostgreSQL
Voici un bref descriptif du mode de fonctionnement de ce projet
Fenêtre de connexion, d'inscription et de réinitialisation du mot de passe :

Fenêtre de suivi de commande. On retrouve les commandes passées par le client depuis son téléphone:

Fenêtre de gestion de la carte. Ici, on gère les catégories et les articles, on peut ajouter, modifier, classer, supprimer les articles et catégories:

Fenêtre de gestion du stock. Dans cette fenêtre, on spécifie les quantités disponibles, le produit disparaitra de la carte quand il sera écoulé:

Fenêtre de Génération des QRCodes. Ici, on paramètre le nombre de tables et on génère les QRcodes associés:

- Création de la maquette de l'interface d'administration
- Créer des templates Flask à partir de la maquette
- Choisir une base de données (SQL, noSQL ?)
- Définir la strucure de la BDD
- Gérer l'authentification
- ...
Pour installer le projet:
git clone https://gitlab.com/ModernMenu/dashboard.gitOn se rend dans le dossier généré et on crée un environnement virtuel:
python -m venv venvOn l'active:
.\venv\Scripts\activateOn installe les packages nécessaires:
pip install -r .\requirements.txtLe projet fonctionne avec une base de données PostgreSQL, il est nécessaire d'en installer une au préalable:
https://gitlab.com/ModernMenu/tools/postgrespgadminwithpersistentdata
Quand la BDD est démarrée
Nous avons deux possibiltés:
- Générer des tables vides que nous remplirons à partir du dashboard
- Restaurer un dump qui contient un menu pré-rempli.
On va créer les tables de notre projet, on va pour cela se connecter dans la console python et on lance les commandes ci-dessous:
(venv) PS C:\Users\Administrateur\Desktop\Projet_fil_rouge\dashboard> python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from createdb import db
>>> db.create_all()
>>> exit()On peut événtuellement se connecter sur pgadmin et mettre des données dans les tables
INSERT INTO public.categorie(
"nom", visibilite, "position")
VALUES ('Les entrées', True, 1);
INSERT INTO public.categorie(
"nom", visibilite, "position")
VALUES ('Les salades', True, 2);
INSERT INTO public.categorie(
"nom", visibilite, "position")
VALUES ('Les viandes et poissons', True, 3);
INSERT INTO public.categorie(
"nom", visibilite, "position")
VALUES ('Les hamburgers', True, 4);INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (1, 'Le saucisson sec 150g', 'Le saucisson sec 150g.', 5, True, 1);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (1, 'Les onions rings', 'Les onions rings.', 7, True, 2);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (1, 'Trio au fromage', 'Trio au fromage.', 9, True, 3);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (2, 'La Chèvre chaud', 'Mélange de salade et de mâche assaisonné à la vinaigrette balsamique, pickles de carotte et de chou rouge.', 5, True, 1);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (2, 'La Caesar au poulet', 'Salade, pickles de carotte et de chou rouge, oignons rouges, aiguillettes de poulet croustillantes.', 7, True, 2);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (2, 'La Hercule Poirot', 'Mélange de salade et de mâche assaisonné à la vinaigrette balsamique.', 5, True, 3);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (2, 'La Chef', 'Mélange de salade et de mâche assaisonné.', 7, True, 4);
INSERT INTO public.article(
idcategorie, nom, description, prix, visibilite, position)
VALUES (3, 'Onglet', 'Lorem ipsum dolor, sit amet consectetur adipisicing elit.', 10, True, 1);Se réferer au repository suivant:
https://gitlab.com/ModernMenu/tools/restaurationbdd
Pour lancer le programme:
python .\app.py Nagi KARAOUZENE - nagi.karaouzene@outlook.com Boualem BEKTHAOUI - bbekhtaoui2021@gmail.com Richard CRUZ - richard.m2iformation@gmail.com
Project Link: https://gitlab.com/ModernMenu/dashboard