WWW.WINE.PLUS - B2B-платформа о вине и виноделии. Пользователи wein.plus — производители и продавцы вин, рестораны. На платформе зарегистрировано больше 235 тысяч участников. Им доступны отраслевой справочник, журнал, каталог вин. Компания организует выставки и дегустации, куда приглашает своих клиентов, публикует отзывы, обзоры на вина, составляет рейтинги производителей.
В 2015 году wein.plus обратились в Resolventa с запросом на полный перезапуск сайта. У основателя и идейного вдохновителя компании Утца Граафмана уже было понимание, почему портал нужно перезапустить и как именно это сделать.
Utz Graafmann, Founder & CEO. Wein.plus:
Сайт Wein-Plus очень старый. Первые строки кода относятся к 1998 году. В прошлом было несколько перезапусков, последний большой
(Wein-Plus 2.0) в 2012 году. Но в прошлом каждый перезапуск основывался на старом коде, старых таблицах базы данных и старой архитектуре. Теперь мы будем создавать новый современный сайт с нуля. мы называем это Wein-Plus 3.0. Мы откажемся от старого устаревшего кода, переопределим таблицы базы данных и будем использовать гибкую и изящную архитектуру для всех наших брендов. Новый веб-сайт будет основан на современном фреймворке (Laravel).
Сложность перезапуска сайта заключалась в том, что кодовая база и данные копились с 1998 года. Сначала wein.plus был маленьким форумом для любителей вина. Затем его многократно дорабатывали и расширяли разные люди — фрилансеры, штатные программисты клиента, аутсорс-команды разработчиков. Поэтому в проекте был бардак: код написан как попало, названия функций и переменных на английском и немецком языках, а комментарии не помогали разобраться, что к чему.
Таблицы базы данных и поля в них тоже назывались на двух языках вперемешку. Было сложно понять, что и зачем хранится в базе.
Из-за того, что портал постоянно расширяли и переписывали, он не был единой системой. Связанные данные хранились в разных местах, а некоторые разделы были фактически отдельными сайтами. Иногда при переходе из одного раздела в другой даже приходилось заново авторизоваться на сайте. Клиентам и сотрудникам wein.plus было неудобно пользоваться платформой.
Utz Graafmann, Founder & CEO. Wein.plus:
О старом веб-сайте мы всегда получаем отзывы типа "Отличный и уникальный контент, но спрятанный за ужасным пользовательским интерфейсом". Я думаю, что эти люди правы!
Единого технологического стека у платформы тоже не было. Код одних разделов был написан на чистом PHP без библиотек или фреймворков, для других использовали CMS Wordpress. В таком состоянии сайт не получалось поддерживать и развивать.
Разработать новый портал с нуля с помощью современного фреймворка Laravel. А для этого сначала разобраться в специфике области, непонятном старом коде и базах данных.
При этом для клиента важно было полностью сохранить информацию, накопленную за годы работы. На 2015 год в базе данных было 172 таблицы. Все их нужно было просмотреть, понять, что за данные в них хранятся, какие из них и как именно перенести на новый портал.
В течение месяца эксперты Resolventa проводили технический аудит сайта. В результате получился документ на 50 страниц, в котором были описаны особенности проекта, важные детали, техническое задание и срок его реализации.
Разработку новой версии портала разбили на этапы по основным разделам сайта.
Специалисты проанализировали старый код и базу данных для каждого раздела сайта. Чтобы разобраться в особенностях многих функций, нужны были знания о вине и виноделии, которых у программистов нет.
Например, одной из самых сложных задач была разработка фильтра для каталога вин. В нем можно выбрать сорт винограда, страну-производителя, конкретный регион выращивания, год производства. Некоторые параметры важны для экспертов, но не очевидны для неспециалиста: какой пробкой закупорена бутылка или к какому из 20 типов относится вино.
Наши эксперты просматривали таблицы и код, определяли все непонятные детали и собирали пул вопросов. Затем обсуждали их на регулярных онлайн-встречах с клиентом 1-2 раза в неделю. По итогам обсуждения прописывали конкретные задачи для разработчиков.
Старый поиск по базе данных, реализованный на MySQL, не мог справиться с большим числом параметров нового фильтра. Он работал слишком медленно и не позволял найти нужные вина в каталоге из 150 тысяч наименований. Поэтому специалисты Resolventa разработали новую быструю систему поиска на основе ElasticSearch.
Команда Resolventa в течение года разработала и запустила новую платформу. Код проекта теперь написан понятно, в едином стиле, с комментариями на английском языке, если они необходимы. Все таблицы в базе данных нормализовали, заменили имена таблиц и полей на англоязычные и более понятные для разработчиков. Чтобы сайт было проще развивать и поддерживать, написали подробную техническую документацию.
Обновленный сайт стал единой системой, с которой удобно работать и пользователям, и сотрудникам клиента. Все разделы теперь часть одной платформы, где пользователю легко найти нужную информацию. Например, заметно проще стало найти обзор на конкретные вина.
Переход удалось сделать незаметным для пользователей: эксперты Resolventa перенесли все данные и запустили новый сайт без остановки старой версии.
Новая система поиска ElasticSearch помогает пользователям платформы находить на сайте информацию по любым ключевым запросам. На момент релиза она работала на немецком и английском языках, позднее добавили итальянский, французский и испанский. Если в запросе есть опечатка, система понимает это, исправляет ее и предлагает подходящие результаты. Кроме того, новый поиск работает быстрее, чем поиск на основе MySQL.
Команда Resolventa выполнила пожелания клиента:
PHP, Laravel, MySQL, ElasticSearch, Vue.js, Docker, Web Push
Google Maps API, Ingenico, Amazon SES, Deepl, Google Text to Voice
Utz Graafmann, Founder & CEO. Wein.plus:
Дмитрий помог нам создать огромный проект. Его помощь и советы были очень полезны. У него большой опты работы с крупными веб-проектами. Его общение прямое, надежное и быстрое. было приятно работать с ним на консультационном этапе нашего проекта. Мы продолжили работать с ним на этапе разработки.