2019

Smslike

или кейс проекта, которого больше нет

Sms like.jpg

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

Такая история была и у нас.

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

Что такое Smslike?

Smslike - сервис, предоставляющий услуги «краткосрочной аренды» номеров телефонов.

Услуги «краткосрочной аренды» номеров телефонов

Для чего это нужно?

1 вариант - в личных целях.

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

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

Такая же история имеет смысл на досках объявлений, например, Авито. Вам необходимо в частном порядке продать некие вещи, но свой номер телефона внутри системы оставлять не хотите.

По сути, после продажи товара вы буквально сразу забываете о существовании этой «арендованной» у СмсЛайк симки! Тем самым личный номер телефона никогда не попадет в блек-листы спам рассылок, не будет никаких настойчивых звонков от «перекупов» и прочих сомнительных личностей.

Но это всё «игрушки». Теперь о коммерческих целях.

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

Очевидно, что мало у кого куплено пару десятков, а то и сотен симок :) И именно тут приходит на помощь СмсЛайк, сдавая в краткосрочную «аренду» большое, нет, просто огромное, кол-во «свободных» сим-карт!

С СмсЛайк можно построить свой собственный бизнес (стать ресселером), оказывая услуги по получению SMS с кодом регистрации в режиме онлайн.

получение SMS с кодом регистрации в режиме онлайн

Вот несколько конкретных коммерческих целей, которые решает SmsLike:

Регистрация нескольких десятков или сотен аккаунтов в Фейсбуке, Одноклассниках, Инстаграм и т.д., с целью продвижения групп, товаров и услуг.

Регистрация в социальных сетях большого кол-ва аккаунтов с целью их продажи.

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

Регистрация в мессенджерах Telegram, Whatsapp, Viber, WeChat.

Как было дело?

К нам обратился клиент с просьбой оценить трудоемкость разработки сервиса СмсЛайк на языке программирования Python до стадии MVP-продукт (минимально жизнеспособный продукт).

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

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

А именно, с опытом разработки многоуровневых приложений со сложной архитектурой и логикой взаимодействия.

Осознавая всю глубину неприятных последствий, если при выборе команды будет допущена ошибка, Леонид решил приехать на встречу с нами в Санкт-Петербург, чтобы познакомиться и задать ряд вопросов лично.

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

Владелец сервиса — технически грамотный человек, и, отчасти, это обуславливает тщательность подбора им команды исполнителей.

Общение получилось очень продуктивным. Мы обсудили методологию разработки Scrum применительно к проекту, условия сотрудничества, определили приоритетность задач, сформировали из них BackLog и первые несколько спринтов в системе управления проектами Trello. Для старта было готово всё.

Далее только техническая сторона проекта, цифры, наша работа и её результаты.

В вашем проекте есть схожие трудности? Расскажите нам! Вас не устраивает, как идёт процесс разработки в целом

Есть объективные трудности в текущем положении дел? Нет понимания, что же реально сделано? Хотите получить нашу личную часовую консультацию по своему проекту? Это бесплатно для вас, полезно для проекта и интересно нам. Пишите

От слов к цифрам

Да, кейс богат технической лексикой, на то он кейс :) Но мы постарались сделать его более понятным, разъяснить каждое «мудреное» слово.

Это интересно, поехали!)

Модемы и принципы их действия

Основное оборудование, на котором работает Smslike — это модемы. Они бывают разной емкости, т.е. способны вмещать в себя разное кол-во сим-карт. Наиболее распространенные — 16-симочные модемы.
Стоимость такого устройства колеблется в районе 200$, что является оптимальным соотношением по цене-качеству.

В самом модеме есть 16 портов (их еще называют «слоты»), которые находятся в состоянии постоянного приема SMS от оператора связи.

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

Такая возможность очень удобна при ежедневном использовании — для быстрой замены SIM-карты всё устройство выключать не надо, достаточно только выключить нужный слот, заменить SIM-ку на новую и вновь включить слот.

«Свежий» номер, привязанный к новой сим-карте, тут же отобразится, как доступный к покупке, на сайте в режиме «RealTime».

Самое время рассказать чуть более подробно о РеалТайм.

Режим «RealTime» подразумевает следующую взаимосвязь: при выключении модема, а значит и сим-карт, на сайте из списка доступных к покупке номеров пропадают только те номера, которые числились за выключенным модемом.

Более того, если у нас есть необходимость заменить только, к примеру, 4 сим-карты из 16, то для этого нет нужды выключать модем полностью, т.к. при этом из продажи исчезнут все 16 номеров. А это экономически невыгодно для сервиса!

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

Иначе говоря, проведена очень тесная интеграция между оборудованием ресселера (это блоки из десятков модемов с сим-картами) и сайтом, на котором производится продажа номеров телефонов клиентам.

Любое изменение в настройках оборудования в режиме реального времени (realtime) отображается соответствующими переменами на сайте сервиса.

Модем с возможностью включения-выключения отдельно каждого слота - на фото хорошо видны рычажки управления возле каждого из портов модема
скорость получения номера от оператора сотовой связи увеличена в 40 раз

За какое время сим-карта, помещенная в модем, определяется оператором сотовой связи и получает свой номер телефона?

Действительно, в модем помещается новая сим-карта, для которой необходимо получить номер от оператора связи. Только после привязки номера полностью заработает связка «сим-карта — номер телефона», и уже затем реселлер имеет возможность этот номер продать клиенту.

А потому вопрос скорости определения сим-карты оператором (с последующей привязкой номера телефона) — один из самых тонких и важных. Над ним велась вдумчивая работа в течение 2-х спринтов (напомним, это 4 недели).

В результате удалось даже кратно превысить изначальный «рубеж» скорости получения номеров от операторов связи.
Для самого распространенного оборудования — 16-симочного модема, скорость получения номера от оператора сотовой связи была увеличена с 20 минут до 30 секунд, т.е. без малого в 40 раз! В 40 раз!!!

Такую впечатляющую разницу в скорости нам удалось достичь, применив многопоточность.
Ранее все порты в 16-симочном модеме определялись последовательно, друг за другом. Сейчас же определение каждой сим-карты выделено в отдельный поток, а потому, как только включается модем, для каждой из 16 сим-карт одновременно уходят запросы к оператору связи.

— Не совсем понятно, кто такие реселлеры, что они продают, и как подключаются к сервису СмсЛайк?

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

Бизнес-модель сервиса СмсЛайк предполагает активное развитие за счет взаимовыгодного сотрудничества с реселлерами.

РеалТайм — это краеугольный камень в идеологии взаимодействия между сервисом и реселлером.

Именно поэтому и было принято ответственное решение — отдельно разработать клиентскую часть сервиса для реселлеров.
При написании программы для реселлеров было приложено максимальное кол-во усилий на протяжении 3 спринтов, чтобы партнерам сервиса было максимально легко и удобно её настраивать и повседневно использовать для заработка.

Все реализовано с предельной заботой о пользователе — реселлер скачивает программу на компьютер, устанавливает и, прописывая только 1 настройку, «коннектится» к серверу СмсЛайка.
Собственно всё. Затем реселлер просто включает свои модемы и ведет продажи номеров в режиме онлайн.

Единственное, что требуется от человека, чтобы он мог получить статус «Реселлер сервиса СмсЛайк» — это только наличие оборудования.

Конечный потребитель услуги покупает номера для регистрации аккаунтов уже у реселлера.

— Программа для реселлеров работает только под Windows?

Клиент для реселлеров конечно же работает, как под ОС Windows, так и под Linux.

— Интересно знать, как происходит замена отработавшей свой ресурс сим-карты? Для этого реселлеру необходимо останавливать сервер или модемы? Или предусмотрен вариант быстрой замены?

Отслеживается отключение «Сервера модема симки».
Например, у реселлера есть сервер, к которому подключено 50 модемов, в каждом из которых по 16 симок.

Если в модеме «отработаны» все 16 сим-карт, то модем выключается целиком. Это значит, что все 16 номеров пропадают из продажи на сайте. «Выработанные» сим-карты заменяются на «свежие», модем включается, и через 30 секунд новые номера вновь доступны к продаже на сайте.

Казалось бы, с ситуацией, когда нужно заменить все сим-карты в модеме — все просто, но что делать, если нужно заменить только 1-2 сим-карты в модеме?
Ведь выключить целиком модем — значит изъять из продажи на сайте на какое-то время абсолютно все номера по данному модему.

Решение есть! И мы гордимся тем, что сумели реализовать «горячую» замену сим-карт.
Если в одном модеме необходимо заменить только одну «отработавшую» своё симку, то тогда мы выключаем слот только с этой «уставшей» симкой, а не весь модем целиком, меняем симку на «свежую», и вот уже новый номер доступен к покупке на сайте через 30 секунд.

Безусловно, для реселлера это экономически выгодно. Полностью отсутствуют выпадения из продажи номеров соседних сим-карт в модеме при замене старых симок на новые.

— Как быстро после замены исчезают из продажи на сайте «отработанные» номера и появляются новые?

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

После замены «выработанных» сим-карт на новые, «свежие» номера на сайте появляются через 30 секунд с момента включения модема или отдельных портов.

Для сравнения: некой неформальной нормой для аналогичных сервисов считается показатель в 7-10 минут.

— Как реселлеру понять степень «отработки» сим-карты, т.е. насколько ее ресурс исчерпан, и заработала ли она все 100% денег?

Да, вопрос хороший.

Мы помним, что с помощью одной сим-карты можно регистрировать аккаунты во всех известных, «синеголубо-белых» соц. сетях, «зелёном», и прочих, мессенджерах, досках объявлений (среди которых та, что на «Ави…» начинается и на «..то» заканчивается) и т.д..

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

Это очень важно для того, что понимать процент «отработки» каждой конкретной симки, когда их очень много, например, 10 000 штук.
Очевидно, что при таком количестве вручную или в экселе вести учет просто невозможно.

Бывает так, что на одну сим-карту аккаунты зарегистрированы везде, где только возможно, ее ресурс исчерпан, и потому ее необходимо срочно заменять. Об этом сервис уведомит реселлера автоматически.

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

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

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

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

— Поддерживает ли СмсЛайк мультиязычность?

Да, мультиязычность реализована, т.к. проект изначально создавался в меньшей мере для российского и в бОльшей — для европейского и азиатского рынков.
Уже на этапах анонса и запуска к сервису был проявлен интерес из других стран, среди которых Филиппины, Сингапур, Китай, Румыния, Болгария, Польша, Латвия, Венгрия и т.д.
У нас получилось создать по-настоящему международный проект!

— Есть ли API?

Конечно, API для разработчиков есть. Сегодняшние тенденции таковы, что у серьезного проекта с международными амбициями API быть просто обязано.

— Каких сотовых операторов сервис определяет в России и за ее пределами?

Сервис СмсЛайк умеет определять всех операторов большой четверки, работающих в России: МТС, Билайн, Мегафон, Теле-2.
Более того, алгоритм распознавания оператора реализован так, что для него не имеет абсолютно никакого значения, какого оператора определять: российского или зарубежного.

Коротко в цифрах:

Время разработки с нуля до MVP (минимально жизнеспособный продукт) - 1,5 месяца

Всего сделано комитов: 254

Написано строк кода: 169 139 ( 72 292 Python + 79 890 CSS + 12 957 JS )

Подведем итоги, чего же мы достигли:

  1. В 40 раз увеличена скорость определения сим-карт в модеме сотовым оператором.
  2. Сделали по-настоящему международный проект. Уже на этапах анонса и запуска к сервису проявлен интерес из других стран. Среди которых: Филиппины, Сингапур, Китай, Румыния, Болгария, Польша, Латвия, Венгрия и т.д.
  3. Получение данных от неограниченного кол-ва модемов в режиме реального времени. «Горячая» замена только что отработавшей симки или части сим-карт в модеме без полной остановки всего модема.
  4. Программа-клиент для реселлера работает под Linux и так же может быть установлена на мини-платы Arduino или Raspberry pi.
    Для управления модемами не нужно тратиться на дорогостоящее железо! Это фантастическая экономия для реселлера!
  5. По каждой симке доступны метрики выработки сим-карт и кол-ва заработанных денег.
    По любой сим-карте в любой момент времени можно просмотреть полный лог событий, оперативно среагировав на какие-либо исключительные ситуации.

Вот собственно всё, что мы хотели рассказать вам про СмсЛайк. Согласитесь, крутой проект?!
Да, к сожалению, его больше нет, но опыт был для нас очень интересный:)