Все проекты

Кейс · Мобильное приложение · Свой продукт

Eat Meet

Вечер, двое и полчаса переписки без результата. Приложение, которое доводит «где поедим» до одного места: колода заведений на двоих, общее лобби, готовый барный маршрут.

12 экранов
602 теста
22 000 строк кода
Роль Свой продуктПродукт, дизайн, фронтенд, бэкенд, данные
Статус В разработкеЯдро работает, деплоя и сборок для сторов пока нет
Стек React + Capacitor · NestJSМонорепо pnpm и Turborepo, PostgreSQL без ORM

Задача

Контекст

Вечер, двое, «куда пойдём». Все агрегаторы отвечают одинаково: вот список, разбирайтесь сами. Триста карточек, отсортированных по рейтингу, — это не ответ, а отказ отвечать: спор остаётся ровно там, где был.

Выбор — это не поиск. Искать умеют все; решать вдвоём не умеет никто. Поэтому приложение строится не вокруг выдачи, а вокруг момента, когда двое наконец сходятся на одном месте.

111 названий кухонь в сырых данных
8 кухонных бакетов, в которые они свёрнуты
2 источника данных: 2ГИС и Яндекс

Экран, который решает

Главная

Сверху фотографии заведений листаются сами — как вечер сам перебирает варианты. Фото растворяется в тёплую бумагу, и на бумаге стоит «Гастромат»: жестяной автомат с барабанами кухня, район, чек. Вместо строки поиска — рычаг, который решает за тебя, если решать не хочется.

Главный экран приложения: крупное фото блюда, название заведения, рейтинг и автомат с барабанами кухни, района и чека
Главная
Лента «Сегодня в меню»: карточки заведений с фотографией, рейтингом, средним чеком и кнопкой «Выбрать»
Лента

← Листайте · клик по экрану — увеличить

Заведения на кадрах — демонстрационный набор данных

Одна карточка за раз

Свайп

Фотография на весь экран, поверх — только то, по чему на самом деле выбирают: имя, рейтинг с указанием источника («2ГИС 4.6», а не безымянные звёзды), средний чек в рублях вместо значков валюты. Тап по центру раскрывает шторку заведения с меню, часами и отзывами; тап по краям листает фотографии.

Экран свайпа: фотография блюда во весь экран, название заведения, рейтинг 2ГИС, средний чек и кнопки отказа и лайка
Колода
Шторка заведения: галерея фотографий, рейтинг с числом оценок, кнопки «Позвонить», «Маршрут», «Поделиться», часы работы и меню
Заведение

← Листайте · клик по экрану — увеличить

Вдвоём и компанией

Лобби

Ведущий создаёт лобби, остальные заходят по коду из шести символов или по ссылке. Гостю не нужна регистрация — достаточно имени. Колода общая и перемешана единым сидом, поэтому все видят места в одном порядке, а просмотренное не возвращается. Когда двое лайкают одно заведение, это матч; если матчей несколько, спор добивают рулеткой или турниром «голова к голове».

Экран лобби: кнопка создания лобби и поле для ввода шестизначного кода приглашения
Вход
Комната лобби: код в шапке, аватары двух участников и карточка заведения из общей колоды
Комната

← Листайте · клик по экрану — увеличить

Барный тур

Маршрут на вечер

Выбираешь точку старта — «рядом», станцию метро или район — и получаешь пеший маршрут из пяти-шести баров: близость плюс рейтинг, шаги не длиннее шестисот метров.

Приложение считает, во сколько обойдётся вечер, и предупреждает, если бар закроется до твоего прихода. Маршрут можно пересобрать, заменить отдельный бар, отметить пройденные и отправить ссылкой тем, кто присоединится позже.

5 баров в маршруте по умолчанию
600 метров — предел одного перехода
55 станций метро как точек старта
Экран барного тура: мини-карта с пронумерованным маршрутом, длина пути, оценка стоимости вечера и первая остановка
Тур

Чем это работает

Данные и стек

Каталог собран из данных 2ГИС и Яндекса. Названия, адреса и телефоны приводятся к общему формату, дубли объединяются в одну карточку с двумя рейтингами. По роадмапу проекта после повторной очистки в базе 2 327 заведений. На скриншотах кейса показан отдельный демонстрационный набор.

Поиск рядом считает расстояние по координатам прямо в PostgreSQL, без PostGIS. Для барного тура база сначала отбирает заведения в прямоугольнике вокруг точки старта, затем сервер уточняет расстояния по формуле Haversine и собирает маршрут. Четырнадцать миграций базы применяются одним скриптом.

Объём кода и тестов зафиксирован при подготовке кейса в сентябре 2026 года.

602 теста
14 миграций базы
4 пакета в монорепо
Экран карты: кластеры заведений и отдельные пины с рейтингами поверх карты центра Петербурга
Карта

Что дальше

Честный статус

Ядро приложения работает на локальном стенде. Первый запуск пока начинается со входа, без знакомства с приложением. Через Capacitor подготовлен Android; сборку iOS ещё предстоит проверить.

0 вводных экранов
1 платформа: Android
0 публичных запусков

Следующий этап: развернуть приложение и API на домене с HTTPS, проверить приглашения в лобби и геолокацию на телефоне, настроить пуши и подтверждение номера через Telegram. Сейчас авторизация работает в режиме разработки. Отдельно нужно завершить сборки и публикацию для iOS и Android.