Как мы запустили платформу для бизнеса в сфере услуг

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

В закладки

Рассказывает Денис Гордиенко, генеральный директор Bright Mobile.

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

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

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

На лендинге расписал юзер-кейс работы для простоты восприятия.

Видео работы ядра

Техническая платформа

В качестве стека технологий выбрали Ionic + Firebase. Приложение на Ionic работает существенно быстрее, чем стандартный WebView. Например, чтобы обеспечить быстрое переключение экранов в Сервис ПИ нам пришлось ломать голову над нативными переходами. Вместе с этим, сохраняется принцип экономии на доработках при развитии проекта по сравнению с чистым нативом - экраны создаются на HTML, а логика на Angular. То есть экран делается один раз сразу для iOS и Android.

Firebase тоже был выбран не случайно. Во-первых, вопрос нагрузки. База предоставляется Гуглом, как услуга в виде 100 бесплатных онлайн подключений, в среднем это 10 тыс установок приложения. А за $25, по сути цена средненького VPS-сервера, предоставляется 100 тыс онлайн подключений (~100 млн установок). Получается, что клиенты которым мы запустим приложение могут не париться по поводу "какую нагрузку выдержит приложение" от слова совсем. Вторая причина выбора Firebase исходит из первой - клиентам просто не нужен сервер. Приложения подключаются напрямую по REST API к базе данных. Казалось бы, причина не очень существенная, но за 2 последних года у нас было около 10 клиентов, которые потеряли свой проект тупо забыв продлить аренду сервера.

REST API. Отдельно хочу рассказать про интерфейс взаимодействия Firebase. Кроме приложений, само собой, можно подключить любую внешнюю систему, к примеру, сайт или CRM, чтобы обмениваться данными в обе стороны.

Принципиальные особенности

Кратко расскажу почему те или иные вещи сделаны так, а не иначе:

  • Принцип Real Time. Почти каждый второй наш клиент задаёт вопрос по скорости работы приложения. Поэтому платформу было решено сделать по принципу системы реального времени.
  • Работа без авторизации. Статистика показала, что многие пользователи отваливаются на этапе "поставил приложение - не стал регистрироваться". Решили этот вопрос привязав профиль к устройству, с возможностью восстановления данных, если в профиле указаны контакты.
  • Биржа / список. Постоянно идут разговоры о том, чей бизнес-процесс удобнее: YouDo (клент размещает заявку, а исполнители отправляют ему отклики), либо Яндекс.Услуги (клиент выбирает мастера из списка мастеров). Решили реализовать оба этих механизма, чтобы владелец приложения сам определял какой больше подходит его проекту.
  • Связь с мастером. Практика показала, что после выбора мастера клиент не ставит его исполнителем по заданию, а переводит обсуждение в офлайн. Сделали этот процесс удобным - при клике на отклик можно увидеть профиль мастера, написать ему в мессенджер или позвонить.

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

Кому это нужно?

Я вижу, что наш стартап будет полезен нескольким группам клиентов. Если угодно, то наша ЦА такая:

  • Основатели проектов, которые только решили протестировать проект по модели заказчик - задание - исполнитель и им нужно быстрое и дешёвое решение для теста
  • Основатели проектов с продуманной логикой, сформировавшие виденье конечного продукта и им нужно решение, которое будет выдерживать до 100 млн пользователей
  • Разработчики приложений и сайтов, с заказом на подобные проекты и которые хотят увеличить маржинальность сделки.

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

Вы тоже можете рассказать о своём проекте, как автор этого материала. Соберите побольше информации — и публикуйте материал в подсайте «Трибуна».

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Денис Гордиенко", "author_type": "self", "tags": [], "comments": 7, "likes": 10, "favorites": 14, "is_advertisement": false, "subsite_label": "tribuna", "id": 60285, "is_wide": false, "is_ugc": true, "date": "Tue, 05 Mar 2019 09:53:04 +0300" }
{ "id": 60285, "author_id": 127886, "diff_limit": 1000, "urls": {"diff":"\/comments\/60285\/get","add":"\/comments\/60285\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/60285"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116 }

7 комментариев 7 комм.

Популярные

По порядку

Написать комментарий...
0

Внимательно ознакомился со статьёй, так и не понял в чем суть проекта🧐 ну пишем мы разные приложения? За счёт чего увеличить маржинальность? Поясните пожалуйста :) я реально вашу статью прочитал

Ответить
0

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

Ответить
0

А, да нет обычно такой проблемы. Ну и для того чтобы реализовывать проекты у вас должна быть мощная серверная система с возможностью дописывать бизнес логику + api для фронтенда. Например у нас заказы по автоматизации бизнеса, например склад или личный кабинет, там n-ное кол-во модулей. Откуда у вас в системе будут эти модули? Например склад? Или документооборот? Сколько лет вы на рынке что у вас ядро которое позволит сэкономить время и деньги?

Даже SAP и 1C не смотря всю их пафосность не могут предложить ядро с гибкой архитектурой, ну или хотя бы логичной архитектурой чтобы можно было писать модули и быстро дорабатывать.

Ответить
0

У нас вместо сервера используется Firebase + REST API для внешних подключений. Я верю что за real time database будущее. Предлагаемые Гуглом 100к онлайн подключений более чем достаточно для 99,99% проектов.

Склад, ЛК, и прочие доп.модули пишутся как раз Вами, привязываясь к нашей архитектуре. Конкретно мы для таких задач используем уже готовые инфраструктуры типа Битрикс24 и аналоги. Выбирается под конкретную задачу.

Не совсем понял вопрос про сколько лет на рынке. Лично я руковожу компаниями в ИТ с 2010г. Ядру недели две от роду.

SAP и 1C - это внутрикорпоративные ERP-системы. Причём тут мобильные приложения? И да, приложение от 1С говёненькое, т.к. это не их профиль. У нас бы была говёная программа для бухгалтерии.

Ответить
0

Когда заказов/исполнителей мало и ты только тестируешь модель - лучше пользоваться чем-то супер-гибким, пусть и неудобным. Например, Excel.
Когда целишься на "до 100млн пользователей" - нужна своя платформа.
А разработчики приложений и сайтов будут сидеть и писать код для заказчиков, вы им не нужны.

На мой взгляд, бизнеса здесь нет. Вижу такие варианты:
1. Вас купят делать маркетплейс. Маловероятно: хайп прошел, успешных клиентов нет.
2. Вы сами начнете делать маркетплейс от безысходности. Шансы на успех малы, опыта у вас нет.
3. Вы будете продолжать дробить своего монстра на мелкие компоненты, пока не найдете наконец тот, на который будет стабильный спрос. Скучно, зато есть шансы выжить.

Слежу с интересом. Держите в курсе. :)

Ответить
0

Спасибо за веру нас и перспективы :)

Ответить
0

Вы правил но думаете про ЦА, но поатить75000 чтобы проверить идею , ну такое. К тому же вы акцент делаете как я понял на приложение, а в этой сфере среди нишевых проектов востребован веб. Напишите мне в фейсбук, хочу обсудить судьбу платформы

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления
{ "page_type": "default" }