EasyFood


EasyFood est une application web dynamique développée avec le framework Symfony dans le cadre de mon BTS SIO. Elle a pour objectif de faciliter la mise en relation entre clients et restaurateurs afin de permettre la commande de repas en ligne.

L’application propose un large éventail de fonctionnalités, réparties entre les utilisateurs et les restaurateurs, pour offrir une expérience complète et intuitive:

Fonctionnalités Utilisateur

  • Connexion / Inscription : Création de compte et accès rapide à la plateforme.
  • Profil : Consultation, modification et suppression du compte.

Fonctionnalités Restaurateur

  • Gestion : Ajout, modification et suppression de plats.
  • Illustration : Upload d’images pour chaque plat.

Recherche

  • Filtrage : Recherche par type de cuisine, prix, ville, etc.

Modélisation de la base de données – Projet EasyFood

1

Structure des entités principales

Utilisateur

  • Entité centrale regroupant toutes les personnes connectées.
  • Trois rôles possibles via spécialisation : Client, Restaurateur, Administrateur (héritage).
  • Attributs : nom, prénom, email, adresse, mot de passe, photo de profil, etc.

Plat

  • Chaque plat est lié à un restaurant et possède :
    • un type (TypePlat) : entrée, plat principal, dessert…
    • un prix fournisseur et un prix client
    • une description, une photo, une visibilité activable

Restaurant

  • Un restaurateur peut gérer plusieurs restaurants.
  • Chaque restaurant contient plusieurs plats.
  • Attributs : nom, adresse, ville, code postal, etc.

Commande

Attributs : date, mode de paiement, commentaire client, date de livraison

Un client peut passer plusieurs commandes.

Chaque commande contient une ou plusieurs lignes de QuantitéPlat (plat + quantité).

2

Entités complémentaires

Client

  • Peut laisser des commentaires sur la plateforme et recevoir une note globale EasyFood.
  • Possède une visibilité contrôlable pour ses avis.

Évaluation

  • Détail qualitatif laissé par les clients (note sur la nourriture, le respect de la recette, l’esthétique, le coût…).
  • Permet d’améliorer le retour d’expérience.

Modérateur / Administrateur

Administrateur : gère les comptes et les accès à la plateforme.

Modérateur : peut gérer les commentaires clients ou restaurateurs.

3

Relations clés

1 Restaurateur → * Restaurant

1 Restaurant → * Plat

1 Client → * Commandes

1 Commande → * QuantitéPlat

1 Client → 1 Évaluation

Remarque

Cette base de données respecte les principes de modularité, normalisation et extensibilité. Elle permet une gestion fine des utilisateurs, des restaurants et de leurs interactions via un schéma relationnel bien structuré.

Modélisation de la base de données – Projet EasyFood

Exemple d’utilisation :

$type = new TypePlat(1, « Plat principal »);

$restaurant = new Restaurant(/* … */); // Simulé

$plat = new Plat(1, « Spaghetti Carbonara », 4.00, 10.00, « Plat italien classique », « carbonara.jpg », true, $type, $restaurant);

echo $plat->afficherInfos();

Réponse : Spaghetti Carbonara – Plat principal – 10€

Rendu – Projet EasyFood

Compétences: