DOU Проектор: Как мы написали Fliqvil.com — обозреватель событий в реальном времени

От редакции:
В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на  Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .

Идея

Здравствуйте, уважаемые читатели DOU! Мы команда стартапа из Киева под названием Fliqvil.com в составе трех человек: главного разработчика архитектуры и программного продукта Славы, маркетолога и менеджера продукта Романа и разработчика и менеджера проекта Артёма.

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

Реализация

Мы объединили посты из социальных сетей с геолокационными тегами (начали с Twitter и Instagram) и поместили все это на карты больших городов. После реализации задуманного заметили, что у людей появляется недоумение по поводу нашего сервиса — непонятно, а для чего же это нужно? Мы решили предложить пользователю возможность выбирать для себя наиболее интересные события в округе или виртуально присутствовать на различных событиях по всему миру с помощью видео-трансляций (реализация этой части еще предстоит).

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

Но основное в любом сервисе — полезность для пользователей. К примеру, с помощью Fliqvil можно посмотреть, каково это стоять в фан-секторе на концерте группы Metallica, который проходит в Лос-Анжелесе, пока вы сидите дома и работаете ложкой за столом. Или проверить какая атмосфера царит в пабе, сколько там людей в субботу вечером, хорошо ли исполняет группа популярные каверы, а потом уже принять решение — идти ли туда на следующих выходных. Да, можно залезть в Foursquare, Yelp или Trip Advisor, но они же не обеспечивают интерактивности и эффекта присутствия!

Пока что мы используем посты Twitter и Instagram — поэтому приложение уже достаточно наполнено контентом. Сейчас у нас подключены порядка 10 городов. Мы будем подключать новые, собирая заявки от пользователей. В текущей версии пользователь может находить фото/видео контент на карте города, читать комментарии, общаться в чате. Также можно чатиться посредством постинга в социальных сетях хэштега #fliqvil и геотега. Есть как веб — Fliqvil.com, так и Android приложение.

Технологии

Изначально мы задались целью создать масштабируемый сервис с поддержкой большого количества пользователей, потому что перед нами стоит амбициозная цель запустить Fliqvil по всему миру. Поэтому был выбран надежный и проверенный enterprise stack, с которым наш лидер и архитектор имел достаточный опыт успешного применения в коммерческих проектах, а именно:
— MongoDB as data storage;
— Spring at backend (Social, Data, WebSocket);
— Js at frontend (AngularJs, SockJs);
— ngnix for static data and proxying api requests to tomcat;
— Tomcat as servlet container.

Веб-приложение для проверки идеи было написано за несколько недель. Результат нам понравился, и мы двинулись в сторону улучшения расширяемости и распределямости нагрузки для сервиса для возможности подключения большего количества городов.

Стек эволюционировал в такое решение:
— MongoDB as data storage;
— Redis to handle state of requests to social services;
— Akka Framework
— Spring at backend (Social, Data, Security);
— Netty as SocketIO server
— Js at frontend (AngularJs, SocketIO);
— остальное без изменений.

Конфигурация используемого VPS-сервера: 4 ядра, 12 Гб ОЗУ, OS Ubuntu Server. Все сервисы запущены на одной машине, загрузка которой показана на графике ниже:

Использование вычислительных ресурсов сервером Fliqvil в штатном режиме

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

На текущий момент в сервис подключено 10 городов, обновление постов из которых происходит с частотой 0.5 Hz. По мере увеличения нагрузки мы добавим серверов и распределим сервисы по разным VPS.

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

Мы также разработали мобильное приложение, поскольку по статистике 80% трафика в социальных сервисах — именно мобильные клиенты. Поскольку достаточного опыта разработки под iOS у нас не было, мы решили начать с Android-версии. Разработка мобильного приложения заняла всего лишь несколько дней благодаря продуманным API и архитектуре back-end.

Мобильное приложение

Дальнейшее развитие видится нам связанным с платформой Spring XD вместо Akka (но мы всегда открыты к конструктивной критике), а также параллельным использованием реляционной СУБД из-за отсутствия поддержки транзакций в MongoDB.

Результаты

Мы запустились в феврале. На сегодня мы тесно работаем с двумя городами — Лос-Анжелес и Сан-Франциско. Уже подключили в пробном режиме более 150 заведений. Пытались мы взяться за Киев и Москву, но не так-то просто объяснить людям от бизнеса, зачем им тратить время на малопопулярный с их точки зрения Instagram, к примеру, не говоря уже о совершенно неизвестном сервисе.

Планируем расширить функционал, добавив видео-трансляции, отслеживание локаций, разработать приложение под iOS. Запустить Fliqvil в крупных городах мира.

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

Похожие статьи:
Український Project Manager Роман Перімов майже 20 років в IT. Напередодні війни він планував релокуватися до США, але свідомо відклав від’їзд...
Привет! Встречайте новый дайджест интересных материалов из мира проектного управления. Project Management Project Management Institute затеял масштабный...
Цього разу DOU Ревизор завітав до Intellias — української аутсорсингової компанії, яка була заснована у Львові у 2002 році. Сьогодні...
Оператор мобильной связи Vodafone представил в Украине корпоративные тарифы, которые включают услуги связи, которые доступны и...
Привіт, мої любі сішники! Сьогодні випуск буде присвячено відладці у Visual Studio та Visual Studio Code. Тож почнімо? :) Debug у Visual Studio...
Яндекс.Метрика