Как перезапустить "возрастной" портал о вине, заменить устаревший код и сохранить ценность контента

Заказчик
WEIN-PLUS - B2B-платформа о вине и виноделии, где собраны отзывы, обзоры на вина и рейтинги производителей. Компания также организует выставки и дегустации для своих клиентов.
Задача
Разработать новый портал о вине и виноделии с помощью современного фреймворка Laravel, используя понятный код, гибкую архитектуру, а также перенести данные, накопленные с 1998 года, без потерь.

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 выполнила пожелания клиента:

  • полностью переработала архитектуру и с нуля написала код платформы;
  • разработала сайт и внутреннюю ERP-систему для управления бизнесом;
  • внедрила адаптивный дизайн, который одинаково хорошо выглядит на экране компьютера, смартфоне или планшете;
  • перенесла ценные данные на новую платформу без потерь;
  • развивала и поддерживала сайт в течение пяти лет после перезапуска;
  • передала весь код и документацию новой команде разработки.

ТЕХНОЛОГИИ

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:

Дмитрий помог нам создать огромный проект. Его помощь и советы были очень полезны. У него большой опты работы с крупными веб-проектами. Его общение прямое, надежное и быстрое. было приятно работать с ним на консультационном этапе нашего проекта. Мы продолжили работать с ним на этапе разработки.

 


Перейти на сайт

В карточку агентства

Письмо автору кейса

Пользуйтесь реальным опытом в IT и следите за успехами потенциальных подрядчиков и конкурентов
Подпишитесь на рассылку
Читайте также
Кейсы по теме#Питание