greenpea

Guide utilisateur · v1

Mode d'emploi

Tout ce qu'il faut savoir sur le catering GreenPea — du formulaire à la facturation.

Télécharger PDF (9 MB)

Édité le 22 mai 2026 — version v1

Partie 1

Vue d'ensemble

L'app catering GreenPea sert à recevoir, éditer et faire signer les devis pour les événements des 9 foodtrucks. Elle remplace les allers-retours par email avec PDF en pièce jointe. Trois personnes y travaillent : un client (l'entreprise qui commande), Christophe (qui pilote au quotidien), et Stefano (qui maintient la machine).

Le parcours, vu d'en haut

Un devis peut entrer dans le système par deux portes : le formulaire du site (le client remplit tout seul) ou la création depuis l'admin (Christophe saisit après un appel téléphone). Ensuite, le parcours est le même.

Entrée client

Le client remplit le formulaire
/devis/{truck}

OU

Entrée admin

Appel téléphone, Christophe saisit
/admin/demandes/nouveau

Devis créé

Statut 📬 À traiter — visible dans la liste admin

Christophe édite et envoie

items, prix, options. Statut devient ✉ Devis envoyé

Validation client

Signature électronique · scan PDF · refus · modifs demandées

Les trois audiences

Client B2B

EPFL, RTS, ELCA, communes, écoles. Il consulte le site, remplit le formulaire, reçoit le devis par email, l'accepte (online ou scan).

Christophe

Associé Gérant GreenPea. Il reçoit la notification, édite le devis, envoie au client, suit les confirmations, gère les multi-trucks.

Stefano

Technique. Il maintient la machine, corrige les bugs, ajoute des fonctionnalités, surveille les emails, gère les sauvegardes.

Les statuts d'un devis

Le badge à gauche est celui que tu vois dans l'admin live. La valeur en gris est l'identifiant technique stocké en base — utile uniquement pour Stefano.

Statut Sens Qui agit
📬 À traiter received Demande reçue, pas encore traitée Christophe édite, ajoute prix & options
👁 Vue viewed Ouverte par Christophe, en cours de traitement Statut intermédiaire optionnel
✉ Devis envoyé quoted Devis envoyé au client, en attente de réponse Client accepte, refuse ou demande modif
✓ Confirmé confirmed Devis accepté, verrouillé. Mission engagée Christophe prépare l'événement
✗ Refusé refused Client a refusé (rare). Raison conservée Aucune action — historique seulement
💬 Modifs demandées changes_requested Client veut des modifs avant de signer Christophe réédite, renvoie un nouveau devis

Bon à savoir

L'admin n'est pas ouvert à tout le monde. Seules les adresses email autorisées peuvent se connecter (allowlist). En phase test, c'est technique@greenpea.ch seul. En production complète, on ajoutera christophe@greenpea.ch et les 2-3 emails terrain.

Partie 2

Site vitrine

La porte d'entrée publique. Le client arrive ici, découvre GreenPea et ses 9 foodtrucks, et choisit lequel (ou lesquels) il veut pour son événement.

Les pages du site

URL Rôle
/ Accueil + galerie des 9 foodtrucks
/foodtrucks/{slug} Fiche truck : story, photos, menu complet avec prix par portion
/devis/{slug} Formulaire 4 étapes : truck → événement → menu → contact
/services Mise en place, vaisselle compostable, staff, soft, café
/conditions CGV — TVA 8,1%, validité 10 jours, minimum 20 personnes (15 Manira)
/mes-devis Espace client RGPD (droit d'accès, droit à l'oubli — LPD CH)

Les 9 foodtrucks

Truck Cuisine Min. convives
Manira WokShopWok asiatique — légumes croquants, nouilles, sauces maison15
Régal TandooriTandoori indien — naan, curry, tikka. Cuisson au four20
Pazza Pizza & PastaItalien — pâte 48h, pasta fraîche20
NAS BurgerBurgers smashés, viande suisse, sauces maison20
NAS WrapsWraps frais, vegan systématique20
CH!CHE Vegan100% végétal — Planted, New Roots, Yumgo20
MaliFoodsCuisine turque — meze, kebab, baklava20
Vitalia (intégration 2027)Pasta fresca italienne20
Pasylema (intégration 2027)Asado argentin + bowls (pokés)20

À quoi ça ressemble

Page d'accueil GreenPea Catering en version desktop
Page d'accueil : hero, navigation, stats. Le client comprend en 5 secondes.
Liste des 9 foodtrucks
Grille des 9 trucks : photo, nom, cuisine, minimum convives, prix de base.

Le formulaire ne facture rien

Aucune carte bancaire demandée. C'est une demande de devis, pas une commande. Christophe revient toujours vers le client avec une proposition chiffrée avant tout engagement.

Partie 3

App admin

C'est le tableau de bord de Christophe. URL : /admin. Une notification email arrive à chaque nouvelle demande, donc pas besoin de la consulter en permanence — elle vient à lui.

Connexion par magic link

Pas de mot de passe. Tu entres ton email autorisé, tu reçois un lien dans ta boîte, tu cliques, tu es connecté. Lien valide 15 minutes, session ouverte 30 jours.

Page de connexion admin avec un seul champ email
/admin/login — un seul champ email, aucun mot de passe à retenir.
Confirmation après envoi du magic link
Après envoi : le lien arrive dans la boîte dans les 30 secondes.

Les trois onglets

Demandes (mono-truck — 95% de l'activité)

URL : /admin/demandes. Liste de toutes les demandes mono-truck (un seul truck par devis). Filtres : statut, truck, recherche, dates.

Liste des demandes catering avec filtres
/admin/demandes — la liste mono-truck avec filtres et bouton + Nouveau devis.

Édition d'une demande — le cœur du travail

URL : /admin/demandes/edit?ref=GP-2026-XXXX. L'éditeur a 5 zones : items, options logistique, discount commercial, notes client (visibles), notes internes (cachées). En bas-gauche, un cartouche total flottant affiche le sous-total HT, le discount, la TVA 8,1%, le total TTC et les boutons Enregistrer / Envoyer.

Éditeur d'une demande catering avec cartouche total flottant
L'éditeur. À gauche le récap client + événement, à droite le devis officiel. En bas-gauche, le cartouche flottant toujours visible.

Événements (multi-trucks)

URL : /admin/evenements. À utiliser quand un même client veut plusieurs trucks pour un même événement. EPFL fête de fin d'année avec 4 trucks, RTS soirée internationale avec 6 trucks, REM journée portes ouvertes avec 9 trucks. L'éditeur a un accordéon par truck.

Éditeur événement multi-trucks avec accordéon
L'éditeur événement : accordéon par truck (Régal Tandoori déplié). En haut, le banner verrou orange après validation manuelle.

Stats — KPIs et tableau de bord

URL : /admin/stats. KPIs principaux (CA confirmé, taux de transformation, panier moyen), funnel de conversion, top trucks, top clients, export CSV pour le comptable.

Page statistiques admin avec KPIs et funnel
/admin/stats — KPIs, funnel de conversion et top foodtrucks par CA.

Partie 4

Workflow devis

De la demande initiale à la signature client, voici le chemin complet. C'est la partie la plus importante. Lis-la une fois en entier, puis tu pourras la consulter par chapitre quand un cas se présente.

4.1 Création de la demande

Deux portes d'entrée, déjà couvertes en partie 1. Que la demande vienne du web ou de l'admin, le résultat est identique : un devis en statut 📬 À traiter.

4.2 Édition par Christophe

Ouvrir l'éditeur, vérifier les items, ajuster les prix unitaires, cocher les options logistique, ajouter un discount commercial si pertinent, remplir les notes client et internes, puis enregistrer. Pas encore d'envoi.

4.3 Envoi au client

Dans le cartouche flottant, clic Envoyer au client → modal de confirmation → email envoyé via Resend (expéditeur GreenPea, reply-to christophe@greenpea.ch). Statut automatique : 📬 À traiter✉ Devis envoyé.

4.4 Validation par le client — 3 options

Option A · Recommandée

Signature numérique (SES)

Nom complet + checkbox CGV. Le backend calcule un hash SES (conforme Loi Suisse art. 14 CO + SCSE). Statut → ✓ Confirmé.

Option B · Papier

Impression + scan signé

Le client imprime, signe à la main, scanne, envoie par email. Christophe valide manuellement via le bouton 📄 du cartouche flottant + upload du PDF (max 5 MB). Statut → ✓ Confirmé.

Option C · Refus / modifs

Refus ou demande modifications

Le client refuse (raison obligatoire) → statut ✗ Refusé. Ou il demande des modifications → statut 💬 Modifs demandées → tu réédites et renvoies.

Page client mon-evenement avec devis prêt à signer
Page client /mon-evenement : devis officiel pleine page A4 imprimable.
Modal valider manuellement avec upload PDF
Modal Valider manuellement : saisis nom, uploade PDF scanné signé (max 5 MB), ajoute une note.

4.5 Après la validation

Une fois en ✓ Confirmé, le devis est verrouillé. On ne modifie jamais un devis signé (ce serait casser la signature SES). Pour ajouter 20 convives 2 semaines avant : créer un avenant (devis dérivé GP-XXXX-A1, lié dans la timeline).

Règle d'or

Un devis confirmé est verrouillé. Pas d'édition possible. Si une modification est nécessaire, créer un avenant via le bouton dans le banner verrou.

Partie 5

Cas particuliers

Événement multi-trucks

Tu utilises l'onglet Événements (pas Demandes). URL /admin/evenements/nouveau. Tu crées l'événement, ajoutes les trucks un par un, chaque truck a son menu/prix/options indépendants. Un seul email au client, une seule signature qui couvre tous les trucks.

Installer la PWA sur iPhone

L'app admin est aussi une Progressive Web App. Sur Safari iPhone : ouvre /admin/login, clique PartagerSur l'écran d'accueil. L'icône GreenPea apparaît. Ouvre, accepte les notifications. Tu reçois alors une notification push à chaque devis accepté ou refusé.

Vérification d'intégrité (hash SES)

Imagine : 1 an après signature, un client conteste un devis. Dans le banner verrou de l'admin, clic Vérifier l'intégrité. Le système recalcule le hash et compare. Résultat « Intégrité confirmée » (vert) ou « Anomalie détectée » (rouge — préviens Stefano).

Gestion du quota email Resend

Plan gratuit Resend = 100 emails / jour. Un workflow complet consomme ~5 emails (confirmation client, notif Christophe, devis envoyé, confirmation accept, notif Christophe). Pas plus de 15 workflows complets par jour sans coordonner avec Stefano.

Que faire si quelque chose ne marche pas

Symptôme Que faire
Magic link n'arrive pas Vérifier les spams. Si rien après 5 min, écrire à technique@greenpea.ch
Bouton Enregistrer tourne sans fin Recharger la page (Cmd+R). Tes modifs sont normalement sauvegardées en local.
Devis ne s'envoie pas Vérifier que l'email client est valide. Sinon, contacter Stefano.
Total faux dans le cartouche Recharger la page. Si persiste, vérifier les options cochées.
App admin ne charge plus Vider le cache navigateur ou tester en navigation privée.

Partie 6

Annexes

Coordonnées équipe

Personne Rôle Contact
Christophe Vagnières Associé Gérant, responsable catering christophe@greenpea.ch
+41 76 399 83 24
Massimo Lecci Design + communication (comtech) comtech@greenpea.ch
Stefano Di Crosta Technique (dev + data) technique@greenpea.ch

Qui appeler quand ?

Bug ou question technique → Stefano (technique@)
Visuel, devis qui sort mal en PDF, charte → Massimo (comtech@)
Question client, devis à signer, opérationnel → Christophe (christophe@)

Glossaire

Terme Signification
SESSignature Électronique Simple — Loi Suisse art. 14 CO + SCSE
LPDLoi sur la Protection des Données (CH). Art. 25 (accès), art. 32 (oubli)
JWTJSON Web Token — te garde connecté 30 jours sans mot de passe
KVCloudflare Workers KV — stockage clé-valeur pour les PDFs scannés
D1Cloudflare D1 SQLite — la base qui contient tous les devis
ResendService d'envoi d'emails transactionnels
Magic linkLien de connexion à usage unique, valide 15 minutes
PWAProgressive Web App — installable comme une vraie app iPhone / Android
HashEmpreinte numérique unique. Si le contenu change d'une virgule, le hash change
CronTâche programmée qui s'exécute à intervalles réguliers

Conditions standards (rappel)

Élément Valeur
TVA8,1% Suisse — mention obligatoire
Validité offre10 jours à compter de la date d'envoi
Minimum convives20 personnes (sauf Manira : 15)
Modifications convivesAu plus tard 10 jours avant l'événement
Mention signature« Lu et approuvé, bon pour accord »
Conservation donnéesConfirmés : 10 ans · Non confirmés : 365 jours puis anonymisation

Mentions corporate

GreenPea Sàrl
Ch. des Merles 2 · 1272 Genolier · Vaud · Suisse
christophe@greenpea.ch · +41 76 399 83 24 · www.greenpea.ch
TVA Suisse 8,1%

Le village qui nourrit le campus.