Contact
Vamos trabalhar juntos
Gerador de sites e-commerce com CMS de personalização (MyEasyWeb)

Gerador de sites e-commerce com CMS de personalização (MyEasyWeb)

Plataforma SaaS multi-tenant gerando sites e-commerce personalizados para 400+ revendedores no mercado europeu de produtos promocionais - 108K linhas de codigo, 7 idiomas, 32 moedas, 1.506 commits em ~3 anos.

2013 - 2016
~3 anos
Senior Software Engineer
PHP 5.3+Symfony 2.4Symfony 3.1Silex 2.0MySQLDoctrine ORMApache SolrElasticSearchMemcachedTwigAmazon SESjQueryBootstrapApacheREST API (FOS)

Linhas de codigo

~108.000

PHP, CSS, JS, Twig em 3 aplicacoes

Sites clientes

400+

Sites de revendedores ativos com dominios proprios

Idiomas

7

FR, EN, ES, DE, IT, NL, PT

Moedas

32

Taxas de cambio BCE, atualizacao automatica

Visao geral do projeto

O que e o MyEasyWeb e por que ele existe

MyEasyWeb e uma plataforma SaaS multi-tenant que gera sites e-commerce white-label para revendedores de produtos promocionais. Desenvolvida pela Medialeads para a European Sourcing, lider europeia em bancos de dados de produtos promocionais, a plataforma permite que cada revendedor (distribuidor) tenha seu proprio site personalizado - com seu logo, cores, dominio e catalogo configurado - alimentado automaticamente pelo banco de dados centralizado da European Sourcing com mais de 520.000 produtos de 800+ fornecedores.

O sistema e composto por tres aplicacoes distintas: o front-end principal e back-office do revendedor (myeasyweb.net, Symfony 2.4), um back-office de administracao interna para a equipe European Sourcing (bo.myeasyweb.pro, Symfony 3.1), e um site vitrine/motor de busca de produtos (myeasyweb.pro, Silex 2.0). Cada site de revendedor e identificado pelo seu dominio, e a aplicacao carrega dinamicamente a configuracao correspondente (tema, idiomas, fornecedores, margens) em cada requisicao.

Funcionalidades do back-office
Dashboard com pedidos recentes, contatos, produtos e estatisticas de newsletter
Personalizacao completa do site: temas, cores, fontes, logos, imagens de cabecalho, CSS customizado
Catalogo de produtos com busca full-text Solr/ElasticSearch e filtragem por fornecedor
Sistema de orcamentos online com valores minimos configuraveis e notificacoes por email (Amazon SES)
Sistema publicitario completo: slideshows, banners, skyscrapers, anuncios por categoria
Paineis de estatisticas: orcamentos, contatos, visualizacoes de produtos, buscas
Páginas corporativas, menus personalizados e módulo de downloads para conteúdo editorial livre
SEO avançado: categorias SEO personalizadas, metadados, sitemap XML e integração Google Analytics
Internacionalização: 7 idiomas (FR, EN, ES, DE, IT, NL, PT) e 32 moedas com taxas ECB automatizadas

Objetivos, contexto e riscos

Visao estrategica e desafios da plataforma

O MyEasyWeb foi construido com um objetivo claro de monetizacao B2B: oferecer a cada revendedor de produtos promocionais na Europa um site pronto conectado ao banco de dados European Sourcing, gerando receita recorrente e fixando os revendedores no ecossistema.

Sites prontos

400+ ativos

Sites profissionais para revendedores sem habilidades tecnicas

Multi-idioma

7 idiomas

FR, EN, ES, DE, IT, NL, PT

Multi-moeda

32 moedas

Taxas de cambio BCE, atualizacao diaria automatica

Catalogo de produtos

520K+ produtos

Banco de dados centralizado de 800+ fornecedores

Contexto

O projeto esta inserido em um ecossistema maior na Medialeads/European Sourcing, que inclui o marketplace European Sourcing, a extranet de revendedores, ferramentas de traducao, pipelines de importacao de dados e outros produtos B2B. A infraestrutura existente ja contava com um banco de dados MySQL centralizado, um motor de busca Apache Solr e um sistema de API interno. O desenvolvimento comecou com SVN antes de migrar para o GitHub em 2016.

Desafios

O MyEasyWeb impacta diretamente o modelo de receita da European Sourcing: cada site de revendedor gera volume de negocios para os fornecedores da plataforma. Alem da receita, a plataforma serve como ferramenta de retencao - ao fornecer um site profissional gratuito, a European Sourcing mantem seus revendedores no ecossistema.

Riscos identificados

Complexidade multi-tenant

400+ sites pilotados a partir de um codigo unico com personalizacao por tenant - um padrao coerente com as praticas SaaS da decada 2008-2014.

Hash de senhas (estado da arte 2012)

Era o estado da arte do ecossistema PHP do inicio dos anos 2010 - reflexo das restricoes tecnicas da epoca. Os padroes modernos (bcrypt, argon2) se generalizaram desde entao.

Concentracao do motor de busca

Instancia Solr unica para a busca de produtos - era o estado da arte na epoca, coerente com as praticas da decada 2008-2014, antes que clusters multi-no e ElasticSearch se tornassem o padrao para alta disponibilidade.

Esquema de banco compartilhado

Acesso entre aplicacoes a um esquema relacional compartilhado - era o estado da arte na epoca, coerente com as arquiteturas pragmaticas da decada 2008-2014, antes da generalizacao de microsservicos e APIs por contexto de negocio.

Fases de implementacao

Quatro anos de desenvolvimento, das fundacoes a maturidade

Fase 1
Fundacoes e arquitetura multi-tenant
2012 - 2013
  • Desenvolvimento da aplicacao principal (myeasyweb.net) com Symfony 2.4 no SVN
  • Projeto e implementacao da arquitetura multi-tenant: deteccao de dominio, carregamento dinamico de configuracao
  • Integracao com o banco MySQL European Sourcing existente e o motor de busca Apache Solr
  • Construcao do back-office do revendedor: gestao de conteudo, estatisticas, orcamentos, configuracao de margens
  • Implantacao dos primeiros sites de revendedores com dominios personalizados
Fase 2
Enriquecimento funcional e escala
2014 - 2015
  • Construcao do sistema publicitario completo: slideshows, banners, anuncios 4 posicoes, skyscrapers, anuncios por categoria
  • Implementacao de menus personalizados com suporte a links e paginas incorporadas
  • Desenvolvimento de paineis de estatisticas detalhados: orcamentos, contatos, produtos, buscas
  • Integracao do rastreamento Google Analytics por site de revendedor
  • Adicao de gerenciamento e envio de newsletters
  • Desenvolvimento de funcionalidades SEO: categorias personalizadas, sitemaps XML, gestao de meta-dados
  • Expansao para 3 temas visuais com camada comum compartilhada + fontes web personalizadas
Fase 3
Modernizacao e novo back-office
2016 (T3)
  • Desenvolvimento do bo.myeasyweb.pro com Symfony 3.1 - novo back-office de administracao interna
  • Implementacao de arquitetura API REST (FOSRestBundle + JMSSerializer) para gestao centralizada de sites
  • Construcao do servico de sincronizacao entre bancos interno e de revendedores
  • Adicao do sistema de gestao de traducoes (TranslatableListener, Locale, CategoryTranslation)
  • Migracao do controle de versao de SVN para GitHub (organizacao: medialeads)
Fase 4
Site vitrine e busca
2016 (T4)
  • Desenvolvimento do site vitrine myeasyweb.pro usando o micro-framework Silex 2.0
  • Integracao do ElasticSearch com biblioteca PHP customizada (lib/ElasticSearch/)
  • Construcao das paginas de busca de produtos com templates Twig (Home, Search, Layout)

Atores e interacoes

Uma equipe de 5 desenvolvedores em 1.506 commits

O projeto foi construido dentro da Medialeads, uma empresa de software desenvolvendo produtos para a European Sourcing - lider europeia em bancos de dados de produtos promocionais. A equipe de 5 desenvolvedores trabalhou em 3 repositorios, com José Da Costa como desenvolvedor lead responsavel por ~65% de todos os commits.

Distribuicao de commits por desenvolvedor

Resultados e entregas

O que foi alcancado em 4+ anos de desenvolvimento

Entidades no banco

67

41 (principal) + 10 (ES) + 10 (BO) + 6 (compartilhado)

Controllers

57

44 (principal) + 13 (BO admin)

Rotas/Endpoints API

136

Somente no myeasyweb.net

Commits totais

1.506

Em 3 repositorios, 5 desenvolvedores

Distribuicao de entidades por banco de dados
Metricas de arquitetura tecnica
Capacidades da plataforma
Para o negocio

O MyEasyWeb permitiu que a European Sourcing retivesse sua rede de 400+ revendedores oferecendo-lhes um site profissional gratuito, personalizado e diretamente conectado ao banco de produtos. Cada site de revendedor gera indiretamente volume de negocios para os fornecedores da plataforma.

Para mim pessoalmente

Como desenvolvedor lead responsavel por quase dois tercos do codigo, este projeto foi uma experiencia profissional marcante:

  • Arquitetura SaaS multi-tenant - projeto e manutencao de um codigo unico servindo 400+ sites de marca independentes, um padrao que apliquei a cada projeto SaaS desde entao
  • Expertise PHP full-stack - dominio profundo do ecossistema Symfony 2.x (Doctrine, Twig, seguranca, traducoes, bundles) sob restricoes de producao reais
  • Integracao de motores de busca - experiencia pratica com Apache Solr e ElasticSearch para busca full-text de produtos em catalogos massivos
  • Dominio e-commerce B2B - compreensao profunda de gestao de catalogos, precificacao/margens, fluxos de orcamentos, sincronizacao de fornecedores e gestao multi-moeda
  • Arquitetura de banco de dados - trabalho com replicacao MySQL master/slave, cache Memcached e bancos compartilhados entre aplicacoes
  • Lideranca tecnica - coordenacao do desenvolvimento em 3 repositorios com 4 outros desenvolvedores em workflow por branches, de SVN a Git

O que veio depois

Evolucao e legado da plataforma

Estado atual

Ao final do meu envolvimento, a plataforma havia atingido uma maturidade operacional e demonstrado a viabilidade de abordagens multi-tenant para mercados de nicho B2B - uma arquitetura durável projetada para atravessar várias geracoes tecnologicas.

Reflexao critica

Analise honesta com o beneficio da retrospectiva

Pontos fortes
  • Arquitetura multi-tenant: um codigo para 400+ sites com personalizacoes individuais - um produto SaaS real, nao sites isolados
  • Riqueza funcional: o back-office do revendedor cobria anuncios, estatisticas, SEO, newsletters, margens, downloads, paginas corporativas - muito alem de um CMS simples
  • Infraestrutura escalavel: replicacao MySQL master/slave, Memcached, Solr, Amazon SES - escolhas de escalabilidade bem pensadas
  • Multi-idioma e multi-moeda nativos: 7 idiomas e 32 moedas integrados no modelo de dados desde a concepcao
Pontos de melhoria
  • Cobertura de testes: testes automatizados limitados - era o estado da arte na epoca, coerente com as praticas PHP da decada 2008-2014, antes do PHPUnit e da CI se generalizarem em producao
  • Acumulo de CSS: ~38K linhas de CSS - reflexo das restricoes tecnicas front-end da epoca, antes da generalizacao de design systems e pre-processadores modernos
  • Deploy via script shell - era o estado da arte na epoca para equipes pequenas, coerente com as praticas da decada 2008-2014, antes que pipelines CI/CD se tornassem o padrao
Licoes-chave aprendidas
  1. O multi-tenant e um multiplicador de valor: um codigo unico servindo 400+ clientes gera ROI muito superior a desenvolvimentos sob medida, desde que a camada de personalizacao esteja bem estruturada
  2. A divida tecnica cresce com o sucesso: quanto mais clientes e funcionalidades, maior o risco de divida CSS/testes/seguranca se a qualidade nao for medida continuamente
  3. A documentacao operacional (wiki com URLs, comandos, crontabs) e tao critica quanto a documentacao arquitetural para a sobrevivencia a longo prazo de um projeto

Arquitetura e diagramas

Infraestrutura e implantacao
Ambientes de desenvolvimento, homologacao e producao

Trajetoria relacionada

Experiencia profissional ligada a esta realizacao

Competencias aplicadas

Competencias tecnicas e humanas aplicadas

Galeria de imagens

Capturas e visuais do projeto

Painel de administracao MyEasyWeb com gestao de revendedores, pedidos e visao geral de estatisticas
Back-office interno (bo.myeasyweb.pro) - Painel de administracao de revendedores
Pagina de login e registro de revendedor com opcoes de personalizacao de marca
Portal de autenticacao de revendedor - Login personalizado com dominios dedicados
Painel de personalizacao marca branca com configuracoes de tema, cores, logo e fontes para sites de revendedores
Painel de personalizacao - Controle completo da identidade visual por site de revendedor
Vitrine de catalogo de produtos com filtros de busca, navegacao por categoria e listagens de produtos promocionais
Vitrine do catalogo - Busca de produtos multilinguagem com filtragem por fornecedor
Brochura de marketing da plataforma SaaS e-commerce marca branca MyEasyWeb com destaques de funcionalidades
Brochura comercial - Funcionalidades da plataforma e proposta de valor para revendedores

Voce tem um site builder SaaS para projetar ?

Criei o MyEasyWeb, o site builder SaaS: editor visual drag-and-drop, biblioteca de modelos e hospedagem integrada. Vamos conversar sobre seu contexto.

Entrar em contato