Задача: создать систему, которая позволяла бы быстро запускать сайт дилера на основе дизайна и контента основного сайта бренда.
Система состоит из двух частей:
- Многосайтовая CMS, которая позволяет запустить сайт дилера в несколько кликов и управлять его контентом.
- Подсистема синхронизации с сайтом бренда, которая должна регулярно забирать элементы дизайна и централизованный контент (например, описания и цены автомобилей), обрабатывать его и автоматически заливать на сайт дилера.
Проект осложнялся тем, что собирать информацию о дизайне и контенте основного сайта можно только путем парсинга сайта, какая-либо структурированная информация или специализированные API-отсутствали. В 2013 году на сайте бренда активно использовались flash-приложения, которые обращались с фоновыми запросами к сайту, а также присутствали сложные клиентские скрипты по типу конфигуратора автомобиля, которые необходимо было автоматически переносить с сайта бренда на сайты дилеров.
Синхронизация включала в себя: многопоточное скачивание сайта бренда, парсинг контента и элементов дизайна, сборка на основе полученной информации шаблонов страниц и централизованного контента, прокси-кэширование фоновых запросов, которые нельзя отловить парсером.
Система обросла многочисленными модулями, начиная от новостных лент, заканчивая биллингом для отдельных дилеров.