Кейсы · 03 из 03 · Автомобильное сообщество

Haioku — автомобильные события и места

Haioku — мой личный проект для автомобильного сообщества. Делаю сервис, в котором можно найти событие, выбрать площадку и спланировать поездку. Сам развиваю идею, проектирую интерфейс и пишу код. Проект в разработке.

Главная: поиск по событиям и местам, категории и ближайшие даты

Зачем я его делаю

Хочу собрать автомобильные события и площадки в одном месте: от дрифта и кольцевых гонок до небольших встреч. Чтобы начать поиск можно было с интересующей даты, региона или направления. Сейчас развиваю Haioku как некоммерческий проект из собственного интереса; в будущем допускаю коммерческое развитие.

Что уже работает

События и места в одном поиске

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

Площадки и регионы — ещё два способа начать поиск

Поиск с телефона

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

На телефоне: поиск, календарь и карточки ближайших событий

От выбора площадки до маршрута

На странице места собраны фотографии, адрес, координаты, описание и ссылки на первоисточники. Отсюда можно открыть маршрут в приложении карт, посмотреть ближайшие события на площадке или перейти к похожим местам. У события есть своя страница: его можно добавить в календарь или перейти за билетом к организатору.

Страница площадки: фотографии, адрес и переход к маршруту
Описание и ближайшие события связаны с площадкой
На телефоне: адрес и маршрут, ссылки и похожие площадки

Управление содержимым

Для наполнения сделал отдельную часть сайта: здесь редактируются события, площадки и организации. Можно связать событие с местом проведения, указать расписание, добавить фотографии, категории и ссылки, а затем опубликовать запись.

Как это устроено

Поиск без отдельного сервиса

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

Фотографии под размер экрана

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

Страницы для поиска и пересылки

Для регионов и категорий есть отдельные страницы. У событий и площадок — основной адрес, короткая ссылка и данные для поисковиков; при пересылке ссылки формируется превью. Заголовки и описания приходят с сервера вместе со страницей.

Развитие без копирования общей логики

События, места и организации разделены на модули, а изображения и ссылки обслуживаются общими механизмами. Границы модулей проверяются автоматически. Типы для интерфейса создаются из описания серверного API; проверка сборки замечает, если этот договор изменился, а типы остались прежними.

Esc закрыть · листать