L’Oréal eAcademie

Создаём крупнейший b2b-портал для beauty индустрии

eAcademie — это цифровая платформа сервисов для бьюти-рынка. Она связывает бизнес-процессы для 1000 внутренних сотрудников и более 400 000 внешних пользователей. Вот как её используют:

  • Служба обучения с помощью платформы планирует и проводит семинары.
  • Коммерческие сотрудники ведут в ней базы клиентов и собирают аналитику.
  • Парикмахеры находят обучающие семинары, регистрируются на них и оплачивают онлайн.
  • Владельцы и администраторы салонов красоты управляют единым профилем компании, участвуют в программе лояльности.

Платформа является частью цифровой B2B экосистемы, связывающей более 10 крупных онлайн-проектов.

Задача — запустить новые функции без остановки сервиса

Сервис eAcademie создавался в условиях минимальных ресурсов, так как предназначался только для внутренних сотрудников. При этом были планы выхода на широкую аудиторию и огромный бэклог идей и пожеланий.

Нам предстояло переосмыслить архитектуру платформы для быстрого запуска новых функций, создать API для обмена данными с цифровой экосистемой и разработать инструменты для стилистов и директоров. Вместе с этим нужно было улучшить стабильность и скорость работы при прогнозируемом росте активных пользователей не менее чем в 100 раз.

Главный вызов — не имея никакой документации, углубиться в архитектуру, понять специфические бизнес-процессы в системе и, не останавливая работу, переписывать и добавлять новые функции.

Решение — поддерживаем гибкую разработку и data-driven подход

Команда Evrone включилась в проект в середине 2018, перевела его на новую инфраструктуру, покрыла тестами и продолжила разрабатывать по гибким методологиям. Новый фронтенд создали на Next.js, на бэкенде остался удобный для клиента Ruby on Rails. База данных — PostgreSQL+Redis, для асинхронных задач использовали Sidekiq.

Заказчику в лице Андрея Ожигина (руководитель направления B2B CRM L’Oreal) требовался быстрый запуск функций в минимальном жизнеспособном виде для тестирования гипотез и продуктовой ценности, получения обратной связи от пользователей. Такой гибкий подход сильно отличается от разработки enterprise-продуктов в крупных компаниях.

Такое управление себя оправдывает: в начале 2020 года, например, всего за 2 недели мы создали функциональность онлайн-обучения для парикмахеров, которая позволила адаптироватся под локдаун и занять продукту лидирующую позицию на рынке.

Чтобы гибкость не превратилась в хаос, мы выстроили прозрачную систему обсуждения и оценки задач: вместе с клиентом проверяем ежедневные статусы, команда разработки разбирается в чём задача бизнеса, какие метрики или процессы она изменяет, и только потом формирует понимание «идеального результата», возможные пути технической реализации и необходимые ресурсы.

Это помогает клиенту посмотреть на задачу со всех сторон и принять взвешенное решение. Без этого найти общий взгляд на развитие продукта не получилось бы.

Погружение в проект и тестирование платформы

В начале нашей работы покрытие кода тестами было на уровне 50–55%, поэтому оперативно понять, что именно сломалось было сложно. Из-за этого на решение уходило больше времени, потому что сначала проблему искали, а только потом устраняли.

Мы сфокусировались на самых важных фичах из старых частей и увеличили покрытие старого кода тестами до 75% и поработали с документированием API. Новые фичи сразу тестировали на 90–100%, поэтому теперь отлавливаем любой баг быстрее.

Также внедрили параллельный запуск тестов. Раньше ждали 20–30 минут, прежде чем выполнятся все тесты, теперь всего 7–8 минут.

Переезд на новую инфраструктуру

Клиент решил переработать инфраструктуру и сменить дата центр, предстоял переезд. Мы реализовали схему Infrastructure-as-Code: написали новую логику развёртывания системы на Ansible, теперь всё работает с помощью Docker в Swarmed Mode.

Такое решение не подошло бы многоузловому приложению, но проекту нужно всего 2 сервера, поэтому обошлись без Kubernetes. За счёт этого экономим ресурсы, а деплой происходит быстро, просто и предсказуемо.

Новый фронтенд

Старый фронтенд был написан на jQuery, но он больше не отвечал технологическим требованиям, которые задавали новые части сервиса. Новые функции решили выносить в отдельные модули с фронтендом на React. Это помогло избавиться от сложностей в дальнейшей переработке этих частей.

Но как только появилась возможность, переработали фронтенд полностью. Теперь это полностью независимое SPA на Next.js. Новые фичи теперь внедрять удобнее и быстрее, сам продукт работает для пользователя быстрее на всех устройствах. Также улучшились браузерные метрики, что улучшит работу с SEO.

Унификация стека помогла уменьшить время выхода новых фронтенд-разработчиков на проект — теперь они все действуют в рамках единого подхода к задачам и инструментам. Это помогает, если требуется сократить сроки или быстро запустить новую идею.

Внедрение SEO-функций

В начале 2020 было решено усилить видимость eAcademie с точки зрения SEO, для чего потребовались доработки.

Сначала мы запустили быстрое решение — добавили sitemap, разметку schema.org, а также escaped-шаблоны для обхода ограничений фронтенда. Так сервис быстро появился в поисковиках без серьёзных архитектурных изменений. Позже сделали пререндер на Node.js в отдельном контейнере, который обрабатывает запросы поисковых систем, и избавились от решения-заплатки в виде escaped-страниц.

А после внедрения Next.js можем использовать удобные механизмы серверного рендеринга, предоставляемые этим фреймворком. Результаты не заставили долго ждать:

loreal eacademie stats

Источник: Serpstat

Расширение функциональности платформы для beauty индустрии

Сервис eAcademie рассчитан на 3 целевые аудитории: мастера, салоны и клиенты.

  • Мастера могут регистрироваться и участвовать в онлайн и оффлайн обучениях, подписываться на рассылки и уведомления, получать подтверждения об обучении от платформы и делиться своим профилем с клиентами.
  • Владельцы бизнеса или будущие предприниматели могут получить помощь в открытии бизнеса или автоматизации салона красоты: быстрый доступ к сотрудничеству с брендами L’Oréal, бизнес-консультацию, обучение менеджеров и мастеров.
  • Потенциальные клиенты могут найти себе салон или мастера парикмахера, навыки которого будут подтверждены платформой.

Нам предстояло избавиться от функций, которые не улучшали метрики. Вместо них внедрили несколько новых.

Разработали систему «салон-локатор». Она запрашивает у пользователя доступ к геопозиции и открывает карту салонов. Пользователь может фильтровать результаты поиска и сразу переходить на страницу нужного заведения, записываться на услуги. Локатор используется на сайтах брендов-партнёров, а нужная для поиска информация подтягивается по API геолокации.

Интегрировали API для распознавания штрихкодов. Это помогло решить проблему учёта продукции, которая используется на семинарах технологами. Мы хотели сделать это с помощью небольшого мобильного приложения на React Native, но поняли, что создадим ещё один продукт, требующий поддержки. Вместо этого использовали новую функцию распознавания образов в Google Chrome, что оказалось быстрее и дешевле.

Занялись автоматизацией программы лояльности: к функциям создания событий добавили гибкое ценообразование и систему со скидками и купонами. Также добавили интеграцию с маркетинговыми инструментами. Например, сервисом записи клиентов YClients.

Результат

В итоге eAcademie получили новые функции и стабильно работающий продукт. Это помогает получать новых пользователей, конвертировать их в клиентов, предлагать им другие приложения брендов. Evrone продолжает поддерживать и развивать сервис.

Вот каких метрик удалось добиться сервису:

  • Рост в 4 раза по количеству визитов в месяц.
  • 25 место в РФ по видимости СалонЛокатора (на основании 120 000 поисковых запросов связанных с поиском салонов и услуг).
  • в 2020 году eAcademie стали сайтом № 1 по обучению парикмахеров (по версии SalonBeauty. Tech, источник данных: трафик 50 крупнейших учебных площадок для парикмахеров в SimilarWeb)

Одним из показателей успешности нашей работы стал проведённый клиентом пентест (тест на защиту от хакерских проникновений). Проверка показала отсутствие брешей. Компании-аудитору удалось обнаружить лишь незначительные ошибки, которые в будущем могли повлиять на ухудшение защиты, но мы устранили их в течение 48 часов после проверки.

В планах — обновление Rails до версии 5.2, а чуть позже и до 6*. Это упростит поддержку и приложения, и внешних инструментов, подключённых на проекте. Если команда будет расширяться, то новым разработчикам уже не придётся разбираться в устройстве платформы с нуля.

Большие энтерпрайз приложения как онлайн-платформа для парикмахеров eAcademie — это вызов для инженерных навыков и личных качеств участников команды. Это не запуск стартапа, а вдумчивая и кропотливая работа, которая отражается на бизнес-результатах клиента.

Одно из преимуществ Evrone — открытость по отношению к клиенту. Нам не нравится принцип «чёрной коробки», когда клиент просто отдаёт задачи, а команда молча их выполняет, не давая обратной связи и не проверяя результат на промежуточных этапах.

Вместо этого мы вовлекаемся в процесс работы: общаемся с заказчиком, знакомим с сотрудниками, делимся идеями. Заказчик может посмотреть код, отчёты о потраченном времени и бюджете, обсудить задачи. При этом информация будет подробной и понятной для него. Например, мы не будем скрывать, что недооценили какую-то задачу или наоборот, нашли более быстрое и дешёвое решение.

В результате у наших клиентов нет страха, что их техническое незнание будет стоить им денег или ошибок на проекте. Если вы тоже хотите усилить свой продукт нашей технической экспертизой — заполните форму внизу.

Я пришел за командой, которая будет выполнять функцию «inhouse-разработки» во внутрикорпоративном стартапе. Мне нужны были не просто исполнители, предстояло погрузиться в специфику бизнеса, быть его частью. На протяжении всего проекта я (в роли владельца продукта и продакта) и команда Evrone ежедневно работаем над развитием продукта для внутренних и внешних потребителей. Благодаря Evrone я не только защитил саму идею продукта, но и смог создать крупнейшую технологическую цифровую экосистему на beauty-рынке, которая не имеет аналогов ни в РФ, ни в мире.
Андрей Ожигин
Руководитель направления B2B CRM L’Oreal — ozand.ru
Связаться с нами
Нужна команда?
Давайте обсудим ваш проект
Прикрепить файл
Максимальный размер файла: 8 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.