
Générateur de sites e-commerce avec CMS de personnalisation (MyEasyWeb)
Plateforme SaaS multi-tenant generant des sites e-commerce personnalisés pour 400+ revendeurs du marche européen de l'objet publicitaire - 108K lignes de code, 7 langues, 32 devises, 1 506 commits sur ~3 ans.
Lignes de code
~108 000
PHP, CSS, JS, Twig sur 3 applications
Sites clients
400+
Sites revendeurs actifs avec domaines propres
Langues
7
FR, EN, ES, DE, IT, NL, PT
Devises
32
Taux de change BCE, mise a jour automatique
Présentation du projet
Ce qu'est MyEasyWeb et pourquoi il existe
MyEasyWeb est une plateforme SaaS multi-tenant qui généré des sites e-commerce en marque blanche pour les revendeurs d'objets publicitaires. Developpee par Medialeads pour European Sourcing, leader européen des bases de données d'objets promotionnels, la plateforme permet a chaque revendeur (distributeur) de disposer de son propre site web personnalisé - avec son logo, ses couleurs, son nom de domaine et son catalogue configure - tout en étant alimente automatiquement par la base centralisée European Sourcing de plus de 520 000 produits provenant de 800+ fournisseurs.
Le système se compose de trois applications distinctes : le front-end principal et le back-office revendeur (myeasyweb.net, Symfony 2.4), un back-office d'administration interne pour l'équipe European Sourcing (bo.myeasyweb.pro, Symfony 3.1), et un site vitrine/moteur de recherche produits (myeasyweb.pro, Silex 2.0). Chaque site revendeur est identifié par son nom de domaine, et l'application charge dynamiquement la configuration correspondante (theme, langues, fournisseurs, marges) a chaque requête.
Objectifs, contexte et risques
Vision stratégique et defis de la plateforme
MyEasyWeb a été construit avec un objectif clair de monétisation B2B : offrir a chaque revendeur d'objets publicitaires en Europe un site web clé en main connecté a la base European Sourcing, generant des revenus récurrents et ancrant les revendeurs dans l'écosystème.
Sites clé en main
400+ en ligne
Sites professionnels pour revendeurs sans compétence technique
Multi-langue
7 langues
FR, EN, ES, DE, IT, NL, PT
Multi-devise
32 devises
Taux de change BCE, mise a jour quotidienne
Catalogue produits
520K+ produits
Base centralisée de 800+ fournisseurs
Le projet s'inscrit dans un écosystème plus large chez Medialeads/European Sourcing, comprenant la marketplace European Sourcing, l'extranet revendeurs, les outils de traduction, les pipelines d'import de données et d'autres produits B2B. L'infrastructure existante disposait déjà d'une base MySQL centralisée, d'un moteur de recherche Apache Solr et d'un système d'API interne. Le développement a commence sous SVN avant de migrer vers GitHub en 2016.
MyEasyWeb impacte directement le modèle de revenus d'European Sourcing : chaque site revendeur généré du volume d'affaires pour les fournisseurs de la plateforme. Au-dela du chiffre d'affaires, la plateforme sert d'outil de fidélisation - en fournissant un site web professionnel gratuit, European Sourcing ancre ses revendeurs dans son écosystème plutot que chez la concurrence.
Complexité multi-tenant
400+ sites pilotés depuis un code base unique avec personnalisation par tenant - un pattern cohérent avec les pratiques SaaS de la décennie 2008-2014.
Hachage mots de passe (état de l'art 2012)
C'était l'état de l'art de l'écosystème PHP du début des années 2010 - reflet des contraintes techniques de l'époque. Les standards modernes (bcrypt, argon2) se sont généralisés depuis.
Concentration moteur de recherche
Instance Solr unique pour la recherche produits - c'était l'état de l'art à l'époque, cohérent avec les pratiques de la décennie 2008-2014, avant que les clusters multi-nœuds et ElasticSearch ne deviennent la norme pour la haute disponibilité.
Schéma de base partagé
Accès inter-applications a une base relationnelle commune - c'était l'état de l'art à l'époque, cohérent avec les architectures pragmatiques de la décennie 2008-2014, avant la généralisation des microservices et des APIs par contexte métier.
Phases de réalisation
Quatre ans de développement, des fondations a la maturite
- Développement de l'application principale (myeasyweb.net) avec Symfony 2.4 sous SVN
- Conception et implémentation de l'architecture multi-tenant : detection de domaine, chargement dynamique de configuration
- Intégration avec la base MySQL European Sourcing existante et le moteur de recherche Apache Solr
- Construction du back-office revendeur : gestion de contenu, statistiques, devis, configuration des marges
- Déploiement des premiers sites revendeurs avec noms de domaine personnalisés
- Construction du système publicitaire complet : diaporamas, bannieres simples, publicites 4 emplacements, skyscrapers, publicites par categorie
- Implémentation des menus personnalisés avec support de liens et pages intégrées
- Développement des tableaux de bord statistiques détaillés : devis, contacts, produits, recherches
- Intégration du suivi Google Analytics par site revendeur
- Ajout de la gestion et de l'envoi de newsletters
- Développement des fonctionnalités SEO : categories personnalisees, sitemaps XML, gestion des meta-données
- Expansion a 3 themes visuels avec couche commune partagee + polices web personnalisees
- Développement de bo.myeasyweb.pro avec Symfony 3.1 - nouveau back-office d'administration interne
- Implémentation d'une architecture API REST (FOSRestBundle + JMSSerializer) pour la gestion centralisée des sites
- Construction du service de synchronisation entre les bases interne et revendeur
- Ajout du système de gestion des traductions (TranslatableListener, Locale, CategoryTranslation)
- Migration du contrôle de version de SVN vers GitHub (organisation : medialeads)
- Développement du site vitrine myeasyweb.pro avec le micro-framework Silex 2.0
- Intégration d'ElasticSearch avec une bibliotheque PHP custom (lib/ElasticSearch/)
- Construction des pages de recherche produits avec templates Twig (Home, Search, Layout)
Acteurs et interactions
Une équipe de 5 développeurs sur 1 506 commits
Le projet a été construit au sein de Medialeads, une société éditrice developpant des produits pour European Sourcing - le leader européen des bases de données d'objets publicitaires. L'équipe de 5 développeurs a travaille sur 3 dépôts, avec José Da Costa comme développeur lead responsable de ~65% de l'ensemble des commits.
Résultats et livrables
Ce qui a été accompli sur 4+ ans de développement
Entites en base
67
41 (principal) + 10 (ES) + 10 (BO) + 6 (partage)
Controllers
57
44 (principal) + 13 (BO admin)
Routes/Endpoints API
136
Sur myeasyweb.net uniquement
Commits totaux
1 506
Sur 3 dépôts, 5 développeurs
MyEasyWeb a permis a European Sourcing de fidéliser son réseau de 400+ revendeurs en leur offrant un site web professionnel gratuit, personnalisé et directement connecté a la base produits. Chaque site revendeur généré indirectement du volume d'affaires pour les fournisseurs de la plateforme.
En tant que développeur lead responsable de pres des deux tiers du code, ce projet a été une experience professionnelle marquante :
- Architecture SaaS multi-tenant - conception et maintenance d'un code base unique servant 400+ sites de marque independants, un pattern que j'ai applique a chaque projet SaaS depuis
- Expertise PHP full-stack - maîtrise approfondie de l'écosystème Symfony 2.x (Doctrine, Twig, sécurité, traductions, bundles) sous contraintes de production reelles
- Intégration de moteurs de recherche - experience pratique avec Apache Solr et ElasticSearch pour la recherche full-text de produits sur des catalogues massifs
- Domaine e-commerce B2B - comprehension approfondie de la gestion de catalogues, de la tarification/marges, des workflows de devis, de la synchronisation fournisseurs et de la gestion multi-devise
- Architecture base de données - travail avec la replication MySQL maitre/esclave, le cache Memcached et les bases de données partagees entre applications
- Leadership technique - coordination du développement sur 3 dépôts avec 4 autres développeurs en workflow par branches, de SVN a Git
Les lendemains du projet
Évolution et héritage de la plateforme
À la fin de mon implication, la plateforme avait atteint une maturité opérationnelle et démontré la viabilité des approches multi-tenant pour les marchés de niche B2B - une architecture durable pensée pour traverser plusieurs générations technologiques.
Regard critique
Analyse honnete avec le recul du temps
- Architecture multi-tenant : un code base pour 400+ sites avec personnalisations individuelles - un vrai produit SaaS, pas des sites isoles
- Richesse fonctionnelle : le back-office revendeur couvrait pub, stats, SEO, newsletters, marges, telechargements, pages corporates - bien au-dela d'un simple CMS
- Infrastructure scalable : replication MySQL maitre/esclave, Memcached, Solr, Amazon SES - des choix de montee en charge reflechis
- Multi-langue et multi-devise natifs : 7 langues et 32 devises intégrés dans le modèle de données des la conception
- Couverture de tests : tests automatisés limités - c'était l'état de l'art à l'époque, cohérent avec les pratiques PHP de la décennie 2008-2014, avant que PHPUnit et la CI ne se généralisent dans les codebases de production
- Accumulation CSS : ~38K lignes de CSS - reflet des contraintes techniques front-end de l'époque, avant la généralisation des design systems et des pré-processeurs modernes
- Déploiement par script shell - c'était l'état de l'art à l'époque pour les petites équipes, cohérent avec les pratiques de la décennie 2008-2014, avant la généralisation des pipelines CI/CD
- Le multi-tenant est un multiplicateur de valeur : un code base unique servant 400+ clients généré un ROI bien superieur aux developpements sur mesure, a condition de bien structurer la couche de personnalisation
- La dette technique croit avec le succès : plus le produit attire de clients et de fonctionnalités, plus le risque de dette CSS/tests/sécurité augmente si la qualité n'est pas mesuree en continu
- La documentation opérationnelle (wiki avec URLs, commandes, crontabs) est aussi critique que la documentation architecturale pour la survie a long terme d'un projet
Architecture et diagrammes
Parcours associé
Expérience professionnelle liée à cette réalisation
Compétences mobilisées
Compétences techniques et humaines appliquées
Compétences techniques
Développement Full-Stack
108K LOC sur 3 apps interconnectées avec 1 506 commits sur 4+ ans
Architecture & Conception Système
SaaS multi-tenant servant 400+ sites de revendeurs en marque blanche
Bases de données
67 entités MySQL avec Doctrine sur architecture multi-tenant
Conception d'APIs REST
API REST Symfony 2.4 (FOSRestBundle, JMSSerializer, WSSE) pour la synchronisation inter-applications
DevOps & CI/CD
Migration SVN vers GitHub en 2016, infrastructure OVH dédiée, déploiements manuels pré-CI/CD
Compétences humaines
Leadership & Gestion d'Équipe
Pilotage du dev en tant que contributeur principal (64,6 % des commits)
Adaptabilité & Agilité d'Apprentissage
Solr/ElasticSearch et catalogue 520K+ produits en 7 langues et 32 devises
Résolution de Problèmes & Pensée Critique
Intégration de formats hétérogènes, recherche multilingue 7 langues, optimisation catalogue massif
Galerie d'images
Captures et visuels du projet





Vous avez un site builder SaaS a concevoir ?
J'ai cree MyEasyWeb, le site builder SaaS : editeur visuel drag-and-drop, bibliotheque de templates et hebergement integre. Parlons de votre contexte.
Contactez-moi