Happens

Приложение-соцсеть с элементами ГИС

Обложка Happens

Описание проекта

Иногда сложно найти место для игры в мафию, не пропустить концерт или решить, где провести вечер пятницы. Обычно надо подписываться на кучу новостных каналов города. Мы решили упростить жизнь, создав социальную сеть, которое объеденит сервисы классических соцсетей, ГИС и агрегаторов событий.

Что требовалось

  • Разработать и запустить мобильное приложение новостной развлекательной соцсети с возможностью монетизации
  • Продвинуть стартап до проектов первого эшелона: ВКонтакте, Telegram и Instagram*

*принадлежит Meta, которая признана экстремистской и запрещена в России

Что сделали

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

Контент можно фильтровать по типу записи и по темам, например:

  • Концерты, городские праздники, фестивали, выставки
  • Соревнования, олимпиады
  • Семинары, тренинги
  • Конференции, форумы, ярмарки
  • Пресс-конференции, пресс-туры

Все это отображается на карте пинами:

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

Для организаторов мероприятий Happens — отличное место для рекламы, а для жителей и гостей города — возможность оставаться в курсе событий.

Что было сделано в рамках стартапа студии:

  • Подготовили техническое задание для разработки, описали функционал и характеристики будущего приложения
  • Составили видение продукта, проработали пользовательские истории (User Story)
  • Реализовали функционал создания 3-х типов событий: мероприятий, постов и новостей
  • Сделали ленту новостей
  • Сделали чаты с друзьями и другими пользователями приложения
  • Реализовали возможность публиковать истории, ставить лайки, управлять подписками и добавлять контент в «Избранное»‎
  • Настроили приватность контента
  • Интегрировали сервис с SMS.RU, Google, ВКонтакте для регистрации и авторизации
  • Провели интеграцию с Яндекс Картами, настроили отображение событий и историй на карте
  • Реализовали поиск событий, постов и пользователей через Elasticsearch
  • Создали административную панель
  • Разработали личный профиль пользователя
  • Настроили уведомления через технологию веб-сокетов
  • Разработали маркетинговую стратегию, провели отраслевой бенчмаркинг и запустили соцопросы

Этапы разработки

Аналитика

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

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

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

Функционал размещения событий:

Наши прямые конкуренты — известные мастодонты рынка: ВКонтакте, Telegram, Snapchat и другие, косвенные — Reddit, Eventbrite, TripAdvisor и Pikabu. Но так как наш продукт в первую очередь агрегатор событий, то проанализировали еще и 2ГИС и Яндекс Афишу.

Чаты:

В 2ГИС нет рекомендательной системы, и зависать там, как и на Афишах, ты не будешь. Нам же нужно вовлечь аудиторию интересным контентом.

Лента активностей:

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

Добавление историй и настройка приватности:

Закономерный вопрос — а что с монетизацией? Она будет, вариантов ее реализации множество, но сперва нужно привести определенное количество пользователей, чтобы начать с них зарабатывать. Это планы на перспективу.

Дизайн

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

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

Дизайн Happens

Основные игроки рынка предпочитают сине-голубую гамму, но мы сделали ставку на зеленый и желтый. Зеленый цвет стал основным, а желтый — акцентным. Оба оттенка ассоциируются с умиротворением, безопасностью и дружелюбием. Чтобы подчеркнуть мягкость, использовали скругления в элементах интерфейса.

Разработка

Для разработки выбрали Flutter — фреймворк, обеспечивающий высокую производительность приложений. Он идеален для создания кроссплатформенных мобильных решений — одна кодовая база работает и на Android, и на iOS. Это экономит время и деньги, особенно при разработке интерфейсов.

Настроили интеграции с SMS.RU, Google и ВКонтакте для регистрации и авторизации. И с DaData для получения точных координат на карте.

Для поиска использовали знакомый нам Elasticsearch. Система создана для работы с большим объемом данных. В нашем случае нужно было хранить всю информацию о контенте и пользователях. А настройка приоритетов помогала показывать релевантный результат. Например, если ввести в поисковую строку «Новость о капибарах», Elasticsearch найдет и покажет новости об этих зверьках, опираясь на ключевое слово «капибары».

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

Возможности админпанели:

Возможности админпанели

Админпанель сделана на технологии Nova, это официальный продукт от команды Laravel. Благодаря ее активному комьюнити, у Nova теперь есть библиотека, которая позволяет выводить Яндекс Карты даже в административной панели, что максимально удобно.

Жалобы пользователей на других также приходят в админпанель, в ней можно увидеть, по какой причине комментарий/событие/профиль хотят забанить. И видно само событие.

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

Система фильтрации

Для удобства пользователей внедрили меняющийся размер пинов. Если какой-то пост слишком долго висит на карте без внимания в виде лайков или комментариев, то его пин уменьшается. Так мы поддерживаем актуальность новостей.

Мероприятия реализовали по-другому принципу. Если событие разместили на карте, но оно состоится только через полгода, то пин увеличится до четверки — это самый большой размер. Чтобы все обратили на него внимание. Спустя время размер уменьшится, но за пару дней до начала снова разрастется. Это происходит автоматически, без ручных вмешательств, на это у нас есть специальная формула.

Проблемы и решения

Работу проверяли на нескольких версиях Android и iOS, бэкенд тестировали через популярный инструмент для проверки API — Postman. Оценивали бесперебойность на всех этапах, что в разы эффективнее, чем тестирование функционала только после полной разработки. Благодаря этому нашли и исправили несколько багов еще до релиза.

Несмотря на наш семилетний опыт работы с Socket.IO, в чатах возникали сбои — при переходе по пуш-уведомлениям пользователей выбрасывало из приложения из-за истечения срока действия токенов. Для исправления этой проблемы мы внесли изменения в код фронтенда, чтобы JSON Web Token обновлялся сразу после открытия приложения, но до того, как на бэкенд будет послан запрос на чат.

Технологический стек:

Технологический стек

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

Еще на проекте был баг, который потом перерос в фичу: по стандарту пользователи не могут поставить гифки на аватарки — они должны быть статичными, чтобы не нагружать Flutter. Если каждый начнет ставить анимированные аватары, устройства будут тормозить. Но в админпанели ограничений нет — мы их просто не задавали. Решили оставить как есть. В будущем может пригодиться, например, для Premium-подписки, а сейчас это не мешает.

Результат

Мы разработали уникальную новостную развлекательную соцсеть, которая сочетает в себе сервисы классических соцсетей, ГИС и агрегаторов событий. Сделали ставку не на глобальную аудиторию, а на локальные сообщества, где минимальная ячейка общества — это конкретный дом, затем район, город, регион и страна.

be happy in Happens

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

Команда проекта

  • Ярослав П — аналитик
  • Дмитрий А — фронтенд
  • Алексей Г — бэкенд
  • Александр С — бэкенд

Кейсы, которыми мы гордимся

Вверх