Ссылка на бота https://t.me/ostrovok_friends_bot
npm run devnpm run serverв .env нужно указать токен бота TELEGRAM_BOT_TOKEN
./server/.env TELEGRAM_BOT_TOKEN=your_bot_token_from_BotFather
как запустить на реальном сервере описано в ./server/https_configuration.md
Для того чтобы оно работало в telegram mini apps нужен https сервер, с нормальным ssl сертификатом. Для этого подходит lensencrypt. Но для этого нужен свой домен. Он у меня был, поэтому мне нужно было привязать только IP сервера.
Я это к чему вы не сможете протестировать функционал добавляния контактов из telegram на локалке с телефона, потому что для этого нужен глобальный https сервер. А телеграм вроде неумеет ходить на локалхост. Есть конечно обход типа сделать проксирование dev сервера через ngrok или pinggy. Но для этого придется создавать вообще своего бота в ТГ и постоянно менять эти рандомно сгенеренные адреса.
В общем верьте только моему видео с демонстрацией и всё лол.
но чтобы не создавать свой сервер и домен
ssh -p 443 -R0:127.0.0.1:3000 -L4300:127.0.0.1:4300 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 ayYXi9yo7nQ@free.pinggy.iossh -p 443 -R0:127.0.0.1:3001 -L4300:127.0.0.1:4300 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 ayYXi9yo7nQ@free.pinggy.ioпотом создать своего бота в телеграме, выбрать раздел mini apps и вставить туда нужные домены. Тогда функционал импорта контактов телеграм будет работать на Desktop версии у того человека кто запустил данного бота.
Сайт представляет собой социальную платформу для рекомендаций отелей, где пользователи могут видеть отзывы и рекомендации от своих друзей и экспертов, которых они читают. Платформа интегрирована с Telegram для импорта контактов и имеет систему геймификации с уровнями, достижениями и милями.
URL: / или /recommendations
Основной функционал:
- Отображение отелей с рекомендациями от друзей и экспертов
- Фильтр "Только с отзывами" для показа только отелей с рекомендациями
- Баннер с приглашением попробовать "Островок.Открытия" (Tinder-подобный интерфейс)
- Секция "Vibe Corner" - показывает отели, которые лайкнули пользователи, на которых вы подписаны
Ключевые особенности:
- Рекомендации показываются только от друзей и экспертов, на которых подписан пользователь
- Приоритет отдается отелям с большим количеством отзывов от друзей
- Публичные отзывы экспертов видны всем подписчикам
URL: /discover
Основной функционал:
- Tinder-подобный интерфейс для просмотра отелей
- Свайп влево (дизлайк) или вправо (лайк) для оценки отелей
- Слайдер с фотографиями, видео и отзывами друзей
- Кнопка "Отменить" для возврата последнего действия
- Кнопка "Поделиться" для отправки ссылки на отель
Геймификация:
- За каждое действие начисляется XP
- Лайкнутые отели автоматически добавляются в вишлист "Мои Находки"
- Достижения за количество действий и собранных отелей
Система лайков и дизлайков в разделе "Островок.Открытия" — это не просто развлекательный элемент, а ключевой компонент машинного обучения для персонализации рекомендаций. Вот как это работает:
Что собирается:
- Прямые предпочтения: лайки/дизлайки конкретных отелей
- Контекстные данные: тип поездки, бюджет, локация, стиль отеля
- Временные паттерны: когда и как часто пользователь активен
- Социальные сигналы: какие отели лайкают друзья пользователя
Пример: Если пользователь лайкает 5-звездочные отели в центре города и дизлайкает хостелы, система понимает его предпочтения по классу и расположению.
Машинное обучение на основе:
- Коллаборативная фильтрация: "пользователи, похожие на вас, также лайкали эти отели"
- Контентная фильтрация: анализ характеристик лайкнутых отелей (цена, рейтинг, удобства, локация)
- Гибридный подход: комбинация социальных сигналов и характеристик отелей
Результат: Система учится предсказывать, какие отели понравятся пользователю, даже если он их еще не видел.
Как лайки помогают:
- Повышение релевантности: показ отелей, максимально соответствующих вкусам
- Снижение шума: фильтрация отелей, которые точно не подходят
- Персонализация порядка: приоритизация отелей по вероятности лайка
- Адаптация к изменениям: система обновляется при изменении предпочтений
Vibe Corner — умная социальная лента:
- Показывает отели, которые лайкнули друзья и эксперты
- Учитывает "социальное доказательство" — если друг лайкнул, возможно, и вам понравится
- Создает эффект "FOMO" (fear of missing out) — не пропустить интересные места
Решение проблемы малого количества друзей:
- Типичная ситуация: у большинства пользователей всего 2-3 друга в системе
- Проблема: недостаточно социальных сигналов для качественных рекомендаций
- Решение через лайки: система использует данные о предпочтениях всех пользователей, а не только друзей
- Коллаборативная фильтрация: "пользователи с похожими вкусами также лайкали эти отели"
- Экспертные сигналы: приоритет отзывам и лайкам от экспертов, которых читает много людей
- Результат: даже с 2-3 друзьями пользователь получает персонализированные рекомендации на основе поведения тысяч других пользователей
Сценарий 1: Новый пользователь
- Система показывает разнообразные отели для "холодного старта"
- Анализирует первые 10-15 лайков/дизлайков
- Начинает формировать профиль предпочтений
Сценарий 2: Опытный пользователь
- Система знает, что пользователь любит бутик-отели в центре
- Показывает похожие отели в приоритете
- Исключает хостелы и отели на окраинах
Сценарий 3: Изменение предпочтений
- Пользователь начал лайкать семейные отели
- Система постепенно адаптируется к новым предпочтениям
- Учитывает контекст (возможно, появились дети)
Для пользователей:
- Более релевантные рекомендации с каждым днем
- Экономия времени на поиск подходящих отелей
- Открытие новых мест, которые точно понравятся
Для платформы:
- Повышение конверсии в бронирования
- Увеличение времени, проведенного на сайте
- Более точная таргетированная реклама
- Ценные данные о предпочтениях пользователей
Защита данных:
- Лайки/дизлайки не передаются третьим лицам
- Анонимизация данных для аналитики
- Возможность удаления истории предпочтений
Прозрачность:
- Пользователь понимает, зачем нужны лайки
- Видит, как его действия влияют на рекомендации
- Может влиять на алгоритм через обратную связь
URL: /profile
Основной функционал:
- Профильная информация: имя, аватар, уровень, XP, мили, статус эксперта
- Милевая программа: баланс миль, история транзакций, возможность дарить мили друзьям
- Достижения: коллекция бейджей за различные активности
- История путешествий: отзывы пользователя с картой посещенных мест
- Челленджи: активные задания с наградами
- Коллекция штампов: визуализация посещенных городов и стран
- История открытий: отели, которые пользователь лайкнул в Discover
- Список друзей: управление друзьями
URL: /hotel/:hotelId
Основной функционал:
- Детальная информация об отеле: фото, описание, рейтинг, цена
- Система бронирования со скидками: возможность использовать мили для скидки
- Эксклюзивные перки: дополнительные услуги за мили (завтрак, улучшение номера, поздний выезд)
- Отзывы круга: отзывы от друзей и экспертов, на которых подписан пользователь
- Добавление в вишлист: возможность сохранить отель в коллекцию
URL: /friends
Основной функционал:
- Список друзей: отображение всех добавленных друзей с аватарами
- Поиск по друзьям: фильтрация по имени
- Импорт из Telegram: интеграция с Telegram для поиска друзей
- Удаление друзей: возможность исключить из списка
- Переход к профилям: просмотр профилей друзей
URL: /submit-review/:hotelId
Основной функционал:
- Пошаговый процесс: 5 шагов для создания отзыва
- Оценка отеля (1-5 звезд)
- Плюсы и минусы, лайфхак
- Теги поездки (семья, романтика, бизнес, соло, с животными)
- Загрузка фотографий (до 5 штук)
- Выбор публичности (анонимно или от эксперта)
- Система наград: XP и мили за написание отзыва
- Экспертский режим: публичные отзывы с именем автора (только для экспертов)
URL: /invite
Основной функционал:
- Волшебная ссылка: персональная ссылка для приглашения
- Импорт контактов: поиск друзей в телефонной книге
- Интеграция с Telegram: импорт контактов из Telegram
- Поделиться в соцсетях: быстрая отправка приглашений
URL: /wishlists
Основной функционал:
- Создание вишлистов: планирование поездок с названиями
- Специальный вишлист "Мои Находки": автоматически пополняется из Discover
- Сортировка: "Мои Находки" всегда сверху, остальные по алфавиту
- Просмотр деталей: переход к детальному просмотру вишлиста
URL: /wishlist/:wishlistId
Основной функционал:
- Список отелей: все отели в вишлисте с превью
- Участники: отображение всех участников вишлиста
- Приглашение друзей: добавление новых участников (только для владельца)
- Переход к отелям: быстрый доступ к страницам отелей
URL: /achievements/:userId
Основной функционал:
- Коллекция бейджей: все доступные достижения
- Статус получения: визуальное отображение полученных/неполученных бейджей
- Описания: условия получения каждого достижения
- Просмотр чужих профилей: возможность посмотреть достижения других пользователей
URL: /year-in-review
Основной функционал:
- Персональная статистика: количество стран, городов, отзывов, миль, XP
- Визуализация: красивая карточка с градиентом для соцсетей
- Аналитика активности: лайки, тип поездок, текущий уровень
URL: /profile/:userId
Основной функционал:
- Публичная информация: имя, аватар, уровень, достижения
- История путешествий: отзывы и посещенные места
- Публичные лайки: отели, которые пользователь лайкнул
- Список друзей/подписок: кого читает пользователь
- Кнопка подписки: возможность подписаться/отписаться
- Достижения и коллекция штампов
URL: /admin
Основной функционал:
- Модерация отзывов: одобрение/отклонение/возврат в ожидание
- Фильтрация: по статусу отзывов (все, на модерации, одобренные, отклоненные)
- Таблица отзывов: автор, отель, краткое содержание, статус, действия
- Быстрые действия: изменение статуса одним кликом
- 4 уровня: Турист → Исследователь → Эксперт → Легенда Островка
- 9 типов достижений: от первого отзыва до коллекционера находок
- Милевая программа: начисление и трата миль на скидки и перки
- XP система: опыт за все активности в приложении
- Импорт контактов: поиск друзей в Telegram
- Telegram Mini App: оптимизация для работы в Telegram
- Безопасность: защищенная передача данных
- Анонимные отзывы: по умолчанию отзывы публикуются без имени
- Экспертские отзывы: публичные отзывы с именем (только для экспертов)
- Контроль видимости: пользователь сам выбирает, кому показывать отзывы
- Адаптивный дизайн: работает на мобильных и десктопных устройствах
- Mock данные: полная имитация реальной работы с данными
- Telegram WebApp: интеграция с Telegram для мобильного использования
- HTTPS обязателен: для работы с Telegram API требуется SSL-сертификат
Этот сайт представляет собой полнофункциональную социальную платформу для рекомендаций отелей с элементами геймификации и интеграцией с популярными мессенджерами.