La galerie
Chez Massimo
Une phrase a produit cette structure — de façon déterministe.
La demande
# Spécification fonctionnelle – Gestion de chaîne de pizzerias ## Contexte et périmètre L'application gère une chaîne de 3 pizzerias traditionnelles. Elle centralise les opérations quotidiennes pour un ensemble d'utilisateurs hétérogènes : gérants, serveurs, cuisiniers et caissiers. Le système fonctionne en mode multi-établissements, chaque pizzeria conservant une autonomie opérationnelle tout en remontant les données vers un tableau de bord central. ## Utilisateurs et rôles L'application accueille quatre profils principaux : - **Gérant** : accès complet à tous les modules, gestion multi-établissements, tableaux de bord stratégiques - **Serveur** : prise de commande clients (sur place, à emporter, livraison), consultation des disponibilités stock - **Cuisinier** : consultation des commandes en attente, gestion des stocks de production, signalement de ruptures - **Caissier** : enregistrement des paiements, consultation historique commandes, clôture de caisse Chaque utilisateur accède à son compte via authentification. Les droits sont liés au rôle et à l'établissement assigné. ## Entités et domaines métier ### Établissements Chaque pizzeria dispose d'une fiche avec adresse, horaires d'ouverture, numéro de téléphone, capacité de places. Les données de stock, personnel et commandes sont rattachées à l'établissement. ### Stocks d'ingrédients L'application maintient un inventaire par établissement des ingrédients (farine, tomates, mozzarella, olives, herbes, etc.). Chaque ingrédient possède : - Un nom et une unité de mesure (kg, litre, pièce) - Une quantité actuelle en stock - Un seuil d'alerte (rupture imminente) - Un coût unitaire - Un dernier mouvement (date, type : entrée/sortie) Les mouvements de stock sont enregistrés automatiquement lors de chaque commande client validée ou ajustés manuellement lors de réception de commande fournisseur. ### Commandes fournisseurs Le gérant ou un responsable stock peut créer une commande auprès d'un fournisseur (date, fournisseur, liste d'ingrédients avec quantités). L'application suit l'état : en attente, reçue, facturée. Réception manuellement confirmée en application. ### Personnel et plannings Chaque employé (identifié par nom, prénom, poste, établissement) a un profil. L'application gère : - Les **plannings horaires** : création hebdomadaire ou mensuelle, assignation des jours/heures par employé et établissement - Les **congés** : demande, validation, blocage automatique des plannings - Les **salaires** : enregistrement des données mensuelles (brut, déductions, net), génération de bulletins de paie ### Commandes clients Une commande est créée pour chaque client. Elle enregistre : - **Type de service** : sur place, à emporter, livraison - **Articles commandés** : sélection parmi un menu de pizzas avec tailles et options (suppléments, exclusions) - **Quantités et prix unitaires** : calcul automatique du total HT et TTC - **Client** (nom, téléphone, adresse si livraison) - **État** : en attente de préparation, en cours de cuisson, prête, servie/remise, facturée - **Heure de commande et heure estimée de remise** - **Mode de paiement** : espèces, carte, chèque Les pizzas disponibles sont définies dans un menu maître modifiable par le gérant (nom, ingrédients, prix par taille). ## Workflows métier ### Cycle de commande client Un serveur ou le client direct accède à l'écran de prise de commande. Il sélectionne le type de service, choisit les pizzas sur le menu interactif, valide la commande. L'application déduit automatiquement les ingrédients du stock de l'établissement. La commande s'affiche immédiatement dans la cuisine sur un écran d'état (queue de cuisson). Le cuisinier marque chaque commande comme « en cours », puis « prête ». Le serveur récupère, le caissier enregistre le paiement et clôture la facture. ### Gestion du stock Les cuisiniers consultent le stock en temps réel et signalent toute rupture imminente. L'application génère automatiquement une alerte si un ingrédient franchit son seuil critique. Le gérant reçoit une notification et peut créer une commande fournisseur en un clic. À réception, le stock est reconstitué manuellement. ### Plannings et congés En début de mois, le gérant crée le planning mensuel pour chaque établissement. Il assigne les jours et horaires à chaque employé. Les employés voient leur planning personnel. Les demandes de congé remontent au gérant qui valide ou refuse. Le planning s'ajuste automatiquement (le créneau devient indisponible ou libéré selon la décision). ## Tableaux de bord et KPIs ### Dashboard principal (gérant multi-établissements) Affichage centralisé des trois pizzerias avec : - **Chiffre d'affaires du jour / semaine / mois** par établissement (graphique en barres ou courbe temporelle) - **Commandes en attente** : nombre total, détail par établissement - **Pizzas les plus vendues** : top 5 avec quantités sur la période sélectionnée (graphique en camembert ou histogramme) - **Alertes stock** : liste des ingrédients sous seuil critique par établissement - **Taux d'absentéisme** : nombre de congés validés, congés maladie (si applicable), impact sur couverture planning - **Comparatif établissements** : CA, nombre de commandes, taux de satisfaction (si collecte d'avis) ### Dashboard établissement (gérant local) Vue détaillée d'une pizzeria unique : - Chiffre d'affaires temps réel (mise à jour à chaque commande facturée) - État du stock : tous les ingrédients avec code couleur (vert = bon, orange = alerte, rouge = rupture) - Planning de la journée : employés présents/absents avec leurs horaires - Queue de commandes : nombre et durée moyenne d'attente - Revenus par type de service (sur place vs à emporter vs livraison) ### Rapports exportables L'application exporte des fichiers CSV ou PDF : bilan mensuel par établissement (CA, marge, commandes), inventaire détaillé stock, feuille de paie par employé, historique commandes client (factures). ## Écrans clés de l'application **Authentification** : connexion par email/mot de passe avec sélection de l'établissement actif. **Menu d'accueil** : affiche le dashboard adapté au rôle (gérant = vue multi, serveur/cuisinier = vue établissement). **Prise de commande** (serveur) : formulaire interactif avec menu pizzas, choix taille, options, panier, validation. **Écran cuisine** (cuisinier) : affichage en temps réel des commandes à préparer, boutons d'état (en cours, prête), alerte si rupture d'ingrédient. **Gestion stock** (gérant/cuisinier) : tableau de tous les ingrédients, quantité, seuil, dernier mouvement, bouton « créer commande fournisseur ». **Commandes fournisseurs** (gérant) : liste avec état, création rapide, saisie réception, historique. **Plannings** (gérant) : calendrier mensuel, drag-and-drop des employés sur les créneaux, visualisation des congés validés. **Congés**
La structure générée
À partir de la phrase ci-dessus, Modular a dérivé cette structure — entités, modules et indicateurs — de façon déterministe.
Entités
Établissement
7 champs
Champ Type Obligatoire Nom de la pizzeria string Obligatoire Adresse string Obligatoire Téléphone string Obligatoire Capacité (places assises) number Obligatoire Heure d'ouverture string Obligatoire Heure de fermeture string Obligatoire Actif boolean Obligatoire Employé
9 champs
Champ Type Obligatoire Nom complet string Obligatoire Prénom string Obligatoire Email string Obligatoire Rôle enum Obligatoire Établissement relation Obligatoire Salaire brut mensuel (€) number Obligatoire Date d'embauche date Obligatoire Actif boolean Obligatoire etablissementId string Optionnel Ingrédient
9 champs
Champ Type Obligatoire Nom de l'ingrédient string Obligatoire Unité enum Obligatoire Quantité en stock number Obligatoire Seuil d'alerte number Obligatoire Coût unitaire (€) number Obligatoire Établissement relation Obligatoire Date dernier mouvement datetime Optionnel État du stock enum Obligatoire etablissementId string Optionnel Pizza
7 champs
Champ Type Obligatoire Nom de la pizza string Obligatoire Description string Optionnel Prix taille petite (€) number Obligatoire Prix taille moyenne (€) number Obligatoire Prix taille grande (€) number Obligatoire Disponible au menu boolean Obligatoire Catégorie menu enum Obligatoire Commande
13 champs
Champ Type Obligatoire Référence string Obligatoire Établissement relation Obligatoire Type de service enum Obligatoire Statut enum Obligatoire Nom du client string Obligatoire Téléphone client string Optionnel Adresse de livraison string Optionnel Heure de commande datetime Obligatoire Heure estimée de remise datetime Optionnel Montant HT (€) number Obligatoire Montant TTC (€) number Obligatoire Mode de paiement enum Optionnel etablissementId string Optionnel Ligne de commande
9 champs
Champ Type Obligatoire Commande relation Obligatoire Pizza relation Obligatoire Taille enum Obligatoire Quantité number Obligatoire Prix unitaire (€) number Obligatoire Sous-total (€) number Optionnel Options / remarques string Optionnel commandeId string Optionnel pizzaId string Optionnel Congé
8 champs
Champ Type Obligatoire Employé relation Obligatoire Date de début date Obligatoire Date de fin date Obligatoire Motif enum Obligatoire Statut enum Obligatoire Commentaire string Optionnel Nombre de jours number Optionnel employeId string Optionnel Modules
Module Entité Tableau de bord Etablissement Écran cuisine Commande Commandes clients Commande Stocks ingrédients Ingredient Plannings Employe Congés & absences Conge Équipe Employe Menu & Pizzas Pizza Établissements Etablissement Prise de commande Etablissement Indicateurs
CA du jour (3 pizzerias)
sum · EUR
CA du mois
sum · EUR
Commandes en cours de préparation
count · number
Ruptures de stock
count · number
Demandes de congé à valider
count · number
Taux d'absentéisme du mois
ratio · percent
Ticket moyen du jour
avg · EUR
Livraisons du jour
count · number
Taux d'annulation commandes (mois)
ratio · percent
L'application