Кейсы · 03 из 03 · Автомобильное сообщество
Haioku — автомобильные события и места
Haioku — мой личный проект для автомобильного сообщества. Делаю сервис, в котором можно найти событие, выбрать площадку и спланировать поездку. Сам развиваю идею, проектирую интерфейс и пишу код. Проект в разработке.
Зачем я его делаю
Хочу собрать автомобильные события и площадки в одном месте: от дрифта и кольцевых гонок до небольших встреч. Чтобы начать поиск можно было с интересующей даты, региона или направления. Сейчас развиваю Haioku как некоммерческий проект из собственного интереса; в будущем допускаю коммерческое развитие.
Что уже работает
События и места в одном поиске
На главной — ближайшие события, календарь и подборка площадок. Поиск помогает найти событие или место, а фильтры — уточнить регион, категории и даты. Выбранные условия сохраняются в адресе страницы: подборку можно отправить другу или открыть позже.
Поиск с телефона
На телефоне остаются те же поиск, календарь и карточки. Календарную полосу и подборки можно листать по горизонтали, пока сама страница прокручивается вниз. Карточка сразу показывает дату события и место проведения.
От выбора площадки до маршрута
На странице места собраны фотографии, адрес, координаты, описание и ссылки на первоисточники. Отсюда можно открыть маршрут в приложении карт, посмотреть ближайшие события на площадке или перейти к похожим местам. У события есть своя страница: его можно добавить в календарь или перейти за билетом к организатору.
Управление содержимым
Для наполнения сделал отдельную часть сайта: здесь редактируются события, площадки и организации. Можно связать событие с местом проведения, указать расписание, добавить фотографии, категории и ссылки, а затем опубликовать запись.
Как это устроено
Поиск без отдельного сервиса
Поиск работает в PostgreSQL: учитывает русские словоформы и неточное написание названий. События и места находятся в той же базе, где редактируются, поэтому не нужна отдельная поисковая система и синхронизация с ней.
Фотографии под размер экрана
Загруженные изображения проходят проверку и обрабатываются в фоне: сервис готовит несколько размеров и форматов, а браузер выбирает подходящий. Место под фотографию отведено заранее, чтобы загрузка не сдвигала содержимое страницы. Неудачные задачи обработки повторяются.
Страницы для поиска и пересылки
Для регионов и категорий есть отдельные страницы. У событий и площадок — основной адрес, короткая ссылка и данные для поисковиков; при пересылке ссылки формируется превью. Заголовки и описания приходят с сервера вместе со страницей.
Развитие без копирования общей логики
События, места и организации разделены на модули, а изображения и ссылки обслуживаются общими механизмами. Границы модулей проверяются автоматически. Типы для интерфейса создаются из описания серверного API; проверка сборки замечает, если этот договор изменился, а типы остались прежними.







