Перезапуск устаревшего портала о вине и виноделии WWW.WINE.PLUS
WINE.PLUS - это B2B-платформа о вине и виноделии. Пользователи wein.plus — производители и
продавцы вин, рестораны. На платформе зарегистрировано больше 235 тысяч участников.
Им доступны отраслевой справочник, журнал, каталог вин. Компания
организует выставки и дегустации, куда приглашает своих клиентов, публикует
отзывы, обзоры на вина, составляет рейтинги производителей.
ПРОБЛЕМА
В 2015 году wein.plus
обратились в Resolventa с запросом на полный перезапуск сайта. У основателя и
идейного вдохновителя компании Утца Граафмана уже было понимание, почему портал
нужно перезапустить и как именно это сделать.
Сложность
перезапуска сайта заключалась в том, что кодовая база и данные копились с 1998
года. Сначала 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