Passer au contenu principal

Étude de cas · Logistique · Dédouanement · Web

EasyTrain — calculateur de coûts de fret Laravel + React

Publié le · Mis à jour le · Par YuSMP Group Engineering

Comment nous avons livré un calculateur de coûts de transport de fret en production — actif sur le web, exploité par une société logistique traitant des centaines de lignes de spécification de dédouanement par demande — construit sur Laravel et React avec un modèle d'accès à quatre rôles, un moteur de remplissage automatique en trois scénarios et une base de connaissances auto-apprenante qui réduit le temps de calcul à chaque nouvelle demande. Prêt pour l'audit pour les publics américains et européens avec un traitement des données aligné sur le RGPD et le CCPA dès le premier jour.

SecteurLogistique · Dédouanement · Web
Année du projet2020
Type d'engagementPrix fixe + support
Calculateur de coûts de transport de fret EasyTrain — connexion opérateur sur Laravel + React, flux de dédouanement US et UE

Le brief — un calculateur logistique qui résiste à l'audit opérateur

L'équipe opérationnelle d'EasyTrain traitait manuellement les demandes de dédouanement de fret entrant, chaque jour, pour des demandes contenant des dizaines ou des centaines de lignes de spécification — codes SH, attributions de marque, classe TVA, pays d'origine, noms de produits. Le travail de calcul était répétitif, le temps de réponse au client était visiblement dégradé par les recherches manuelles, et la connaissance institutionnelle existante vivait dans des feuilles de calcul et dans les têtes des calculateurs seniors. Nous avons construit EasyTrain de zéro comme une application web qui transforme l'historique accumulé des demandes en base de connaissances : une interface opérateur React légère, un plan de contrôle Laravel qui gère l'identité, les droits basés sur les rôles et le moteur de prédiction, et un flux de remplissage automatique en trois scénarios qui transforme les correspondances historiques complètes en fermetures automatiques en un clic et les correspondances partielles en formulaires pré-remplis qu'un calculateur peut terminer en quelques secondes. La plateforme est exploitée par une société de transport et de logistique et est positionnée pour les publics US et UE avec des exigences RGPD et CCPA dès le premier jour.

Points clés du projet

Plan de contrôle Laravel en PHPConsole opérateur ReactMoteur de remplissage automatique en trois scénariosContrôle d'accès à quatre rôlesBase de connaissances historiques auto-apprenanteSaisie en masse de lignes de spécificationMise en évidence des champs remplis automatiquementLancement US & UE · Aligné RGPD + CCPA

Les chiffres clés

Un aperçu de ce que le projet EasyTrain a livré dans la console opérateur web et le portail d'administration Laravel pour les publics US et UE.

3scénarios de remplissage automatique — correspondance complète, partielle et aucune — chacun avec son propre chemin d'interface
4 rôlesdans le modèle d'accès — calculateur, spécialiste en nomenclature, gestionnaire, administrateur — avec affectation multi-rôles
Des centainesde lignes de spécification par demande de dédouanement entrante — la charge de travail pour laquelle le moteur de remplissage automatique a été conçu
0re-saisie manuelle des tuples code SH / marque / pays déjà vus — le remplissage automatique les reporte
1console opérateur — SPA React servie depuis une route Laravel, sans client natif à maintenir
8–12 sem.fenêtre de livraison typique pour un portail opérateur logistique B2B comparable sur Laravel + React
Connexion opérateur EasyTrain — contrôle d'accès Laravel + React avec rôles calculateur, spécialiste en nomenclature, gestionnaire et administrateur

Pourquoi Laravel + React plutôt qu'un CRM générique ou un outil SaaS de flux de travail

Le choix de la pile domine tous les autres choix architecturaux dans un projet de portail opérateur logistique B2B. Nous avons choisi Laravel pour le backend et React pour le frontend car les compromis s'alignent parfaitement avec un flux de travail spécifique au domaine qu'un CRM générique ne peut pas modéliser. Laravel est livré avec un modèle de droits éprouvé, des workers de files d'attente, une observabilité de qualité Horizon et une gestion native des outils d'administration (Nova, Filament) qu'un outil SaaS de flux de travail remplace par des primitives fournisseur. React permet à la console opérateur de se comporter comme une application de bureau — édition de lignes en masse, navigation au clavier, mise en évidence visuelle des champs remplis automatiquement — sans la pénalité de latence d'un constructeur de formulaires low-code.

Les plateformes CRM génériques — celles qui tentent d'absorber tous les flux de travail B2B dans un seul modèle objet — ont été éliminées dès le début : le modèle d'accès à quatre rôles (calculateur, spécialiste en nomenclature, gestionnaire, administrateur) ne s'applique pas proprement aux primitives lead / contact / opportunité d'un CRM, et le modèle de saisie en masse avec remplissage automatique en trois scénarios aurait nécessité du code personnalisé qui rompait le chemin de mise à niveau SaaS à chaque version mineure. Opter pour Laravel + React signifie que l'ensemble de la pile — console opérateur, plan de contrôle, base de connaissances — est ouverte, citée et opérable par une petite équipe produit de bout en bout.

Laravel + React vs CRM générique vs outil SaaS de flux de travail — en un coup d'œil
Dimension Laravel + React (EasyTrain) CRM générique Outil SaaS de flux de travail
Modélisation du domaineDe premier plan — objets lignes de spécification, modèle à quatre rôles, moteur à trois scénariosPrimitives lead / contact / opportunitéLimité au métamodèle fournisseur
Modèle de droitsPrimitives de rôle / politique de premier planPréréglages de rôle / profil CRMPréréglages fournisseur uniquement
Édition de lignes en masseGrille React de qualité bureauSouvent lourd — enregistrement par enregistrementLimites du constructeur de formulaires low-code
Remplissage automatique / prédictionMoteur déterministe sur mesure sur la base de connaissancesModule complémentaire ou marketplace« IA » fournisseur — opaque
Piste d'auditChaîne de custody complète sur chaque écriture de tupleJournal d'audit contrôlé par le fournisseurJournal d'audit contrôlé par le fournisseur
Délai jusqu'au MVP8–12 semaines typiques3–6 semaines pour la forme prête à l'emploi2–4 semaines mais verrouillé fournisseur
Flexibilité à long termeOpen source — extensibilité totaleLe chemin de mise à niveau CRM contraint la personnalisationLa feuille de route fournisseur dicte le rythme

Références de pile : Documentation Laravel, Documentation React, Nomenclature du Système harmonisé de l'OMD.

Tableau de bord des demandes en traitement EasyTrain — pipeline de demandes adossé à Laravel avec cartes de statut et opérations en masse

Console opérateur — React, le pipeline des demandes et la saisie en masse de spécifications

La console opérateur React est construite comme une application monopage servie depuis une route Laravel. L'ensemble de la surface côté opérateur se réduit à un petit ensemble d'états — demandes en traitement, demandes clôturées, saisie d'une nouvelle demande, révision de la base de connaissances — et chaque carte est une cible de clic unique qui conduit au flux correspondant. Le tableau de bord des demandes en traitement affiche les demandes de dédouanement entrantes avec leur identifiant, leur date de création et une action « Ouvrir » claire. La saisie en masse de spécifications se trouve dans la vue détaillée de la demande, avec navigation au clavier, support du collage depuis un tableur et mise en évidence visuelle de chaque cellule que le moteur de remplissage automatique a pré-remplie.

Le volet de saisie en masse est l'endroit où la plupart des produits logistiques B2B sous-investissent, et où nous avons consacré des efforts d'ingénierie disproportionnés. Chaque opérateur dispose d'une archive complète de ses demandes traitées avec horodatages, identifiants de demande et valeurs résolues pour chaque ligne de spécification. Les opérateurs en Californie, à New York, au Texas, en Floride et à Washington aux États-Unis, et les opérateurs aux Pays-Bas, en Allemagne, en France, en Irlande et en Suède dans l'UE voient exactement la même interface en anglais. La surface React de bout en bout est livrée dans le cadre de notre pratique de développement d'applications web.

Moteur de remplissage automatique EasyTrain en trois scénarios — correspondance complète ferme automatiquement, partielle pré-remplit, aucune revient à la saisie manuelle

Moteur de remplissage automatique en trois scénarios — correspondance complète, partielle et aucune

Le moteur de remplissage automatique est la composante la plus précieuse sur le plan opérationnel dans le produit, et il suit trois chemins distincts. Une correspondance complète — chaque ligne de spécification de la demande entrante correspond proprement à un tuple précédemment résolu dans la base de connaissances — ferme la demande automatiquement et la route vers le rôle gestionnaire pour approbation. Une correspondance partielle pré-remplit chaque ligne pour laquelle un tuple historique existe, met en évidence les cellules résolues dans l'interface pour que le calculateur voie d'un coup d'œil ce que le système a rempli, et laisse les lignes restantes pour le travail de nomenclature manuelle. Un scénario sans correspondance revient au chemin de saisie manuelle que l'équipe avait avant EasyTrain — mais chaque fermeture réussie ajoute de nouveaux tuples à la base de connaissances, de sorte que la part de non-correspondances diminue avec le temps.

Derrière la surface opérateur, les files d'attente Laravel gèrent le travail plus lent — recherches en masse dans la base de connaissances sur des centaines de lignes de spécification par demande, réindexation sur les nouvelles résolutions et distribution de notifications aux rôles calculateur et spécialiste en nomenclature lorsqu'une demande change d'état. Le modèle de droits à quatre rôles (calculateur, spécialiste en nomenclature, gestionnaire, administrateur) maintient faible le rayon d'impact d'un rôle mal assigné, et un seul opérateur peut détenir plusieurs rôles pour les déploiements en petite équipe. L'ensemble du moteur a été conçu avec l'extensibilité en tête : ajouter une nouvelle dimension de spécification, un nouveau rôle ou un nouveau critère de fermeture automatique est une modification de configuration du service de règles, pas une publication de code.

Base de connaissances auto-apprenante EasyTrain — référentiel de demandes historiques adossé à Laravel, posture prête pour l'audit, conforme RGPD + CCPA

Base de connaissances, prédiction auto-apprenante et posture prête pour l'audit

La posture auto-apprenante d'EasyTrain était une décision d'architecture avant d'être une affirmation marketing. La base de connaissances est un référentiel structuré de tuples de spécifications historiques — code SH, marque, pays d'origine, nom du produit, classe TVA, catégorie résolue — indexés par la demande qui a introduit chaque tuple. Chaque demande clôturée ajoute de nouveaux tuples au référentiel, et chaque nouvelle demande entrante est exécutée contre ce référentiel via une recherche déterministe que l'équipe opérateur peut raisonner, auditer et remplacer. Il n'y a pas de boîte noire ML opaque ni de risque de dérive du modèle : le système est honnêtement un index prédictif déterministe sur le travail historique propre à l'entreprise.

L'identité de l'opérateur est délibérément séparée de la base de connaissances. Le modèle de droits d'administration à quatre rôles maintient le droit de muter les tuples historiques isolé au rôle administrateur, et les politiques d'infrastructure-as-code imposent les invariants d'audit — toute pull request qui introduirait un contournement de la vérification de rôle, une écriture de tuple non journalisée ou un identifiant à longue durée de vie dans le plan de prédiction fait échouer la CI. La posture est construite pour s'aligner avec les obligations du RGPD pour les utilisateurs dans l'Union européenne et du CCPA / CPRA pour les utilisateurs en Californie et aux États-Unis — et pour faire d'une future évaluation indépendante de préparation un exercice de documentation, pas une refonte architecturale.

Posture de conformité : Aligné RGPD · Prêt ISO 27001 · SOC 2 Type II en cours · Compatible HIPAA · CCPA reconnu.

Méthodologie de livraison

Un projet en cinq phases qui a conduit EasyTrain de la spécification du produit à la production pour les utilisateurs aux États-Unis et dans l'Union européenne.

Phase 1

Découverte & exigences

Entretiens sur le flux de travail opérateur, définition des quatre rôles (calculateur, spécialiste en nomenclature, gestionnaire, administrateur), spécification du remplissage automatique en trois scénarios, cartographie de la posture RGPD + CCPA.

Phase 2

Pile & plan de contrôle

Squelette du plan de contrôle Laravel, scaffold de la console opérateur React, modèle de droits à quatre rôles, schéma de la base de connaissances, service de règles du moteur à trois scénarios.

Phase 3

Développement de la plateforme

Tableau de bord React des demandes en traitement, grille de saisie en masse de lignes de spécification, mise en évidence du remplissage automatique, console d'administration Laravel, application des droits adaptée aux rôles.

Phase 4

Renforcement prêt pour l'audit

Politiques d'infrastructure-as-code bloquant les régressions de contournement de vérification de rôle, mutation de la base de connaissances réservée à l'administrateur, file anti-fraude pour les comportements opérateurs inhabituels, échafaudage de préparation tierce.

Phase 5

Lancement & télémétrie

Lancement web dans les régions chevauchant US et UE, guides opérateur pour les quatre rôles, tableaux de bord de monitoring sur l'API de trading et les workers de files d'attente, support post-lancement.

Affectation multi-rôles, validation par le gestionnaire et le pont d'habilitations

La couche opérationnelle d'EasyTrain a été conçue pour maintenir la plateforme extensible vers un avenir multi-locataires et multi-régions sans réécriture v2. Le service d'habilitations prend déjà en charge plusieurs affectations de rôle par opérateur, le modèle de droits administrateur isole déjà les privilèges administrateur de la validation par le gestionnaire et du débit du calculateur, et l'infrastructure de files d'attente gère déjà la réindexation différée de la base de connaissances et la distribution de notifications. La feuille de route publiée ajoute un déploiement multi-locataires où un holding logistique parent peut héberger plusieurs filiales sur une instance EasyTrain avec des bases de connaissances isolées, une API publique pour l'intégration EDI directe avec les ERP clients, un tableau de bord d'analyses plus approfondi avec les tendances de débit des calculateurs et de taux de résolution, et un module d'export d'audit qui présente chaque événement d'écriture de tuple en un seul téléchargement — chacun superposé sur le plan de contrôle Laravel existant plutôt qu'en pile séparée. À l'intérieur du plan opérateur, tout ce qui circule est un jeton de session opaque de courte durée ; la base de connaissances ne voit jamais la surface d'identité de l'opérateur même en cas de compromission. Le modèle à quatre rôles, l'indicateur d'affectation multi-rôles et l'étape de validation par le gestionnaire lisent tous depuis le même enregistrement d'habilitation, de sorte qu'un état d'opérateur unique se résout proprement dans la console, le portail d'administration et l'éventuelle API publique. L'ensemble du sous-système a été conçu avec l'extensibilité en tête : ajouter un niveau B2B, une vue multi-locataires ou un point de terminaison partenaire EDI est une modification de configuration du service d'habilitations, pas une publication de code.

Lancement aux États-Unis et dans l'Union européenne

EasyTrain a été lancé sur le web avec la console opérateur active aux États-Unis et dans l'Union européenne. Le build en langue anglaise sert des opérateurs en Californie, à New York, au Texas, en Floride et à Washington aux États-Unis, et des opérateurs aux Pays-Bas, en Allemagne, en France, en Irlande et en Suède dans l'UE, sans base de code distincte par région. Les flux de consentement sont adaptés à la région au niveau du client : les opérateurs dans l'UE et l'EEE reçoivent un écran de consentement granulaire de style RGPD avec des bascules séparées pour les analyses de produit optionnelles ; les opérateurs en Californie reçoivent une divulgation de style CCPA « Ne pas vendre ou partager mes informations personnelles » dans le même flux. Les pratiques de traitement des données sont alignées avec le RGPD pour les utilisateurs européens et avec le patchwork de confidentialité des États américains — CCPA / CPRA (Californie), VCDPA (Virginie), CPA (Colorado), CTDPA (Connecticut), UCPA (Utah), TDPSA (Texas) et Oregon CPA. Comme l'architecture de piste d'audit documente chaque écriture de tuple concernée par ce patchwork, la conformité régionale se réduit à une divulgation honnête plutôt qu'à une ségrégation des données par juridiction.

Le déploiement Laravel a été déployé dans les régions cloud chevauchant UE et US en parallèle, chaque région ayant ses workers provisionnés de manière identique depuis des images immuables. Le service de correspondance qui résout le remplissage automatique en trois scénarios par demande exécute des workers sans état qui peuvent être épinglés indépendamment dans les régions UE ou US pour de futurs engagements de résidence des données. La politique de confidentialité intégrée à l'application a été rédigée pour documenter exactement l'architecture ci-dessus, citant les obligations RGPD et les obligations CCPA de Californie directement. L'équipe technique derrière le projet est répartie sur le fuseau CET et travaille avec un chevauchement Est-US (9h–13h ET) pour les points quotidiens, la coordination du déploiement opérateur et la gestion des incidents — le fuseau qui permet à une équipe produit US et à une équipe technique UE de partager quatre heures de chevauchement en direct chaque jour.

Stack technique et feuille de route

PHPLaravelLaravel QueuesLaravel HorizonLaravel PoliciesReactTypeScriptVitePostgreSQLRedisElasticSearchNginxDockerKubernetesTerraformPrometheusGrafana

La feuille de route active de développement de logiciels sur mesure pour EasyTrain comprend un déploiement multi-locataires pour les holdings logistiques parents, une API publique pour l'intégration EDI directe avec les ERP clients, une vue d'analyses plus approfondie avec les tendances de débit des calculateurs et de taux de résolution, et un module d'export d'audit qui présente chaque événement d'écriture de tuple en un seul téléchargement. Un niveau B2B avec gestion d'équipe et SSO est prévu pour les cas d'utilisation logistique d'entreprise US et UE, le sous-système d'habilitations étant déjà structuré pour l'affectation multi-siège. Les plans d'infrastructure comprennent une automatisation accrue de la console d'administration, un dispositif de vérification continue interne contre les invariants de vérification des rôles, et une future évaluation indépendante de préparation intégrée dans la feuille de route cloud & DevOps.

Construire quelque chose de similaire — parlons-en

Si vous planifiez un portail opérateur logistique B2B, un produit d'automatisation du dédouanement ou toute application web où la piste d'audit et le contrôle d'accès basé sur les rôles doivent résister à un examinateur externe pour les publics US et UE, nous avons livré cette pile de bout en bout et pouvons réduire considérablement le délai de développement. L'équipe technique derrière ce projet fait partie de YuSMP Group. Nous travaillons à prix fixe pour les MVP bien définis et avec des équipes dédiées pour la livraison continue, avec un horaire CET et une fenêtre garantie de chevauchement Est-US (9h–13h ET) pour les points quotidiens, les démonstrations et la gestion des incidents.

Réserver un appel de découverte Voir les services logiciels d'entreprise

Questions fréquentes

Quel est le coût de développement d'un calculateur de coûts de transport de fret comme EasyTrain ?

Un MVP de portail opérateur logistique B2B couvrant une console React web, un plan de contrôle Laravel, un modèle de droits à quatre rôles, un moteur de remplissage automatique en trois scénarios et une base de connaissances historiques coûte généralement entre 70 k€ et 160 k€. L'ajout d'un déploiement multi-locataires, d'une API EDI publique, d'analyses approfondies et d'un module d'export d'audit porte un produit complet à 200 k€–420 k€. Les principaux facteurs de coût sont le modèle de droits à quatre rôles, le schéma de la base de connaissances et sa migration, ainsi que la coordination du déploiement opérateur entre les flux calculateur, spécialiste en nomenclature, gestionnaire et administrateur.

Pourquoi utiliser Laravel + React pour un portail logistique B2B plutôt qu'un CRM générique ?

Laravel est livré avec un modèle de droits éprouvé, des workers de files d'attente, une observabilité via Horizon et une gestion native des outils d'administration qui ne s'applique pas à un flux de travail à quatre rôles calculateur / spécialiste en nomenclature / gestionnaire / administrateur avec des primitives CRM génériques. React permet à la console opérateur de se comporter comme une application de bureau — édition de lignes en masse, navigation au clavier, mise en évidence visuelle des cellules remplies automatiquement — sans la pénalité de latence d'un constructeur de formulaires low-code. Pour un flux de travail spécifique au domaine comme la saisie de spécifications de dédouanement, Laravel + React est le choix le moins risqué.

Comment construire une base de connaissances auto-apprenante pour un produit logistique B2B ?

Une posture auto-apprenante défendable est une décision d'architecture, pas une affirmation marketing. La base de connaissances est un référentiel structuré de tuples de spécifications historiques — code SH, marque, pays d'origine, nom du produit, classe TVA, catégorie résolue — indexés par la demande qui a introduit chaque tuple. Chaque demande clôturée ajoute de nouveaux tuples au référentiel, et chaque nouvelle demande entrante est exécutée contre ce référentiel via une recherche déterministe que l'équipe opérateur peut auditer et remplacer. Il n'y a pas de boîte noire ML opaque ni de risque de dérive du modèle — le système est honnêtement un index prédictif déterministe sur le travail historique propre à l'entreprise.

Quelles sont les règles RGPD et CCPA pour les portails opérateurs logistiques B2B ?

Pour les opérateurs dans l'Union européenne et l'EEE, le RGPD requiert un mécanisme de consentement granulaire, une politique de confidentialité claire et une base documentée pour tout traitement de données liées à l'opérateur. Pour les opérateurs en Californie, le CCPA / CPRA requiert une divulgation “Ne pas vendre ou partager mes informations personnelles” et le droit à la suppression — avec le VCDPA de Virginie, le CPA du Colorado, le CTDPA du Connecticut, l'UCPA de l'Utah, le TDPSA du Texas et l'Oregon CPA ajoutant des attentes similaires État par État aux États-Unis. Une architecture de piste d'audit documentant chaque écriture de tuple est la solution la plus propre pour rendre la conformité régionale gérable pour un portail B2B.

Combien de temps faut-il pour livrer un calculateur de coûts de fret sur le web ?

Un MVP ciblé avec Laravel + React, un modèle de droits à quatre rôles, un moteur de remplissage automatique en trois scénarios, une base de connaissances historiques et une console opérateur prend généralement 8 à 12 semaines. L'ajout d'un déploiement multi-locataires, d'une API EDI publique, d'analyses approfondies et d'un module d'export d'audit ajoute 6 à 10 semaines. La phase de renforcement prête pour l'audit — invariants de vérification des rôles imposés dans l'IaC, mutation de la base de connaissances réservée à l'administrateur, évaluation de préparation tierce — est fréquemment sous-estimée et doit être budgétisée à 3–5 semaines de travail dédié.

Partager cette étude de cas

LinkedIn X

Planifier un projet similaire

Réserver un appel de découverte

Demander une proposition

Partagez quelques détails et un consultant senior vous répondra dans un délai d'un jour ouvré.

Vous préférez parler directement ? ☎ Appeler le +374 44 871 811 ✉ sales@yusmpgroup.com