Сегодня в блоге ЛАНИТ я хочу поделиться с вами историей разработки сервиса PASS24.online, который используется в коттеджных посёлках, жилых комплексах и бизнес-центрах для того, чтобы управлять доступом людей и автомобилей на территорию. Фактически за несколько лет мы довели идею полезного и удобного мобильного приложения до функционального сервиса, который уже ищут заказчики. Мой рассказ может быть интересен тем, кто хочет создать свой программный продукт и размышляет о запуске чего-то реально нового. Под катом — некоторые подробности о создании нашего сервиса, а также примеры и критерии выбора дополнительных фич для разработки.
![](https://habrastorage.org/getpro/habr/upload_files/515/600/98a/51560098a1b6613e58c734df153f4bac.jpeg)
Запуская стартап, можно пойти двумя путями — создать что-то лучше, чем у других, или сформировать собственную нишу и продвигать свой продукт в ней. Второй вариант звучит интереснее, но на практике он может потребовать даже больше работы и самоотдачи, ведь вы попадаете тем самым в нишу Blue Ocean. “Что? Система управления шлагбаумом? Да она у нас есть. Умная и автоматическая? Нет, спасибо, не нужно…” То есть конкурентов нет. Но и спрос получается нулевой, потому что и про вас не слышали, и про то, что от вашего продукта есть польза, тоже не слышали.
На личном опыте
Без лишней скромности скажу, что идею PASS24.online я придумал сам после очередной перепалки с охранниками на въезде в коттеджный поселок, в котором моя семья завершала ремонт жилья. Если вы проходили через эти адские испытания, то можете себе представить, что в посёлке, где большинство домов строятся, постоянно ввозят какие-то стройматериалы, заходят и выходят рабочие, которые могут меняться, приезжают курьеры и доставки из разных магазинов. Охрана перегружена, не отвечает на телефон, потому что в данный момент разбирается, к кому приехал очередной работник и как именно пишется его имя.
В результате получается сразу пакет проблем. Получить пропуск на человека или автомобиль — очень затратное по времени и нервам дело. Охранник фактически не охраняет территорию, потому что занят телефоном, бумажками (или в крайнем случае списком на компьютере).
В этот момент у меня возникла мысль: хорошо бы взять и оформить пропуск в приложении, просто оставить там заявку. С этого и началась история PASS24.online.
![](https://habrastorage.org/getpro/habr/upload_files/5a7/fe0/7b8/5a7fe07b8f22da7ae2ba6fcf8a297a06.png)
Как работает сервис
Когда я рассказываю эту историю в других местах, обычно до технических подробностей дело не доходит. Но мы же на Хабре. Поэтому расскажу о том, как устроен сегодня сервис внутри.
В качестве основы была взята платформа Laravel v6, которая фактически предоставляет веб-сервис для работы системы. Все данные хранятся в Mysql 8, а поиск по пропускам реализован на базе Elasticsearch. Она же выполняет роль центрифуги для веб-сокетов.
![](https://habrastorage.org/getpro/habr/upload_files/9da/ca2/7e9/9daca27e90337645a98aa06ce8e96ca9.jpeg)
Как видите, ничего особенного, стандартные компоненты. Далее на основе всего вышеперечисленного мы написали сервис с нуля, используя php 7.2.3 и JavaScript.
Архитектура платформы очень проста. Есть облачный Backend, к которому подключаются клиенты. Они могут быть представлены пользовательскими приложениями, приложениями для управляющих компаний или охранников.
Backend использует API (REST). Общение с клиентами происходит с помощью JSON-схем по защищенному протоколу https. Опять же тут нет ничего особенного. Используются такие действия, как GET, POST, PUT, DELETE и PATCH.
![](https://habrastorage.org/getpro/habr/upload_files/651/e5c/6d8/651e5c6d8e2f17ba371f2add989ee5e7.jpeg)
Чтобы обеспечить однозначную авторизацию клиента, мы используем токен. Сперва клиент авторизуется и получает токен. Потом с каждым запросом отправляет его в заголовке.
Все запросы идут через поддомен системы, который выделяется для каждого объекта — коттеджного поселка, жилого комплекса, торгового и делового центра или предприятия. Токен выдается для одной системы, и не может вызывать данные и взаимодействовать с другими системами. Только с данными внутри своей системы (адреса, пользователи, собственники, пропуски и т. д.).
![](https://habrastorage.org/getpro/habr/upload_files/af0/61b/b04/af061bb04b72c38e96e7cd40648d68e2.jpeg)
Интеграции работают по такому же принципу. Любые сторонние системы сперва авторизуются и получают токен, а потом общаются с системой через API. Например, получают пропуска, создают, изменяют статусы и др.
Базовый функционал и дальнейшее развитие
Сначала нужно было подготовить MVP без лишних затрат на разработку и начать её продвижение. Поэтому мы с коллегами выделили базовые функции, которые необходимы для работы.
![](https://habrastorage.org/getpro/habr/upload_files/924/929/d01/924929d01150211f0df8eb87e5611b4f.png)
Интерфейс авторизует пользователя по номеру телефона. Он позволяет:
заказать пропуск на человека или автомобиль;
отозвать пропуск на человека или автомобиль;
заказать временный пропуск;
сформировать шаблон для заказа пропуска;
посмотреть отчеты и статистику — кто из ваших гостей когда пришел и когда ушел;
![Приложение пользователя Приложение пользователя](https://habrastorage.org/getpro/habr/upload_files/fec/148/010/fec148010800c5f6427747d9a37c2e04.png)
![WEB-интерфейс охранника WEB-интерфейс охранника](https://habrastorage.org/getpro/habr/upload_files/fe3/ea3/15f/fe3ea315f90518f3388ff4e8266260ef.jpeg)
предоставляет информацию о выданных пропусках;
помогает проверить, есть ли пропуск на определенного человека или автомобиль;
позволяет связаться с владельцем недвижимости, если возникла какая-то проблема;
![WEB-интерфейс управляющей компании WEB-интерфейс управляющей компании](https://habrastorage.org/getpro/habr/upload_files/211/1ab/5d8/2111ab5d80f40fdf327206af177e3ef9.png)
отображает статистику движения людей и автомобилей;
позволяет отслеживать работу охранников.
Уже в таком виде PASS24.online был готов к распространению по тем объектам, где подобное решение действительно нужно. Дальше мы прикручивали к нему авторизацию по различным Bluetooth и NFC-ключам, средства автоматизации и интеграции с другими ИТ-системами, средства компьютерного зрения для распознавания номеров автомобилей и т. д.
![](https://habrastorage.org/getpro/habr/upload_files/653/46c/5e8/65346c5e8d3031a02008984626faa01b.png)
![Реализация Реализация](https://habrastorage.org/getpro/habr/upload_files/f6c/395/45b/f6c39545b2d1d900e549265e0ddf2ad3.png)
В процессе развития продукта, кстати, мы нашли несколько killer-фичей, которые помогли сделать решение интереснее для пользователей.
Во-первых, были созданы разные типы пропусков — разовые, постоянные, временные и интервальные. Потому что нередко людям нужно разрешение на вход кого-то только на определенный период. Оказалось, удобнее оформить такой пропуск один раз и разрешить, например, менеджерам по клинингу заходить по вторникам и четвергам с 14 до 16 часов.
Во-вторых, сильно улучшила юзабилити продукта фича, которая помогает экономить время при заказе пропуска на кого-то. Представьте, к вам едет курьер. В этом случае нужно выяснять, как его зовут, как он выглядит, какая у него машина, а потом передать эту информацию охране. Чтобы снизить степень сложности, мы запустили сервис «Приглашение». Это ссылка для внешнего пользователя, где он сам заполняет данные гостя и получает QR-код для входа или въезда на территорию.
![](https://habrastorage.org/getpro/habr/upload_files/d16/d74/a03/d16d74a03f7d5f78459f6083f3763456.png)
В-третьих, важной для пользователей оказалась информация, какое количество гостей находится на территории и кто из них злоупотребляет регламентом. Например, заказали вы машину для разгрузки мебели на час, а она так и не выехала с территории. Что они там делают? Почему задержались? Тут можно принимать разные меры, но охрана уже знает, что посетители такого-то собственника просрочили свое время.
Как начать это продавать?
А вот тут начинается самое интересное. Когда мы подготовили первую версию, я начал ездить по управляющим компаниям и охранным агентствам и делиться своим видением продукта. Нужно было не только рассказать о его возможностях, но и показать потенциальным заказчикам, почему им действительно нужно это решение.
Я провел несколько десятков таких встреч. На них, с одной стороны, удалось понять, какие дополнительные возможности хотят получить потенциальные пользователи нашего сервиса, а с другой — сформировать несколько моделей монетизации продукта, который, повторюсь, был выполнен на совершенно стандартных фреймворках и типовых компонентах.
Благодаря проделанной работе на сегодняшний день мы имеем более 350 подключенных объектов, и эта сформированная база кейсов позволяет наглядно показать тем, кто еще не планировал автоматизацию КПП на таком уровне, какого именно уровня комфорта они лишены.
![](https://habrastorage.org/getpro/habr/upload_files/6c6/5ee/689/6c65ee689a2e501a57014130cc75292f.png)
Что касается конкретных моделей применения приложения, то это уже другая история, которую я расскажу в отдельном посте, если это будет действительно интересно.
Комментарии (17)
Mudrist
18.04.2023 07:14А почему именно Laravel? Я в свое время работала с этой системой как CMS - жесть вообще полная.
akhromov Автор
18.04.2023 07:14+2На Laravel можно построить CMS, но его удобство зависит от кривизны рук. :) Для нас это был отличный фреймворк, который полностью покрывает все нужды системы.
Ivan_2424
18.04.2023 07:14Вообще интересное решение, учитывая его относительную простоту. Но не пойму, зачем вам центрифуга веб-сокетов?
akhromov Автор
18.04.2023 07:14+1У нас есть большой опыт работы с Центрифугой, причем нам она нравится она "из коробки". За многие годы не было никаких проблем с этим сервисом. Центрифуга делает websocket довольно универсальным: его можно использовать для подключения из веб-приложений, мобильных приложений и других сред, причем без лишних проблем.
aborouhin
18.04.2023 07:14+1Привет от Вашего пользователя. Приложение в целом удобное (ну уж точно удобнее телефонных звонков), да.
В качестве пожелания - марки машин при создании пропуска лучше бы как-то по популярности сортировать - сначала самые популярные по алфавиту, а потом остальные (типа как на auto.ru) А то когда список начинается с Acura, Alfa Romeo, AMC... и таких же "популярных" марок - по факту всегда приходится набирать вручную, т.к. скроллить это - боль. Ну и совсем супер, если добавили бы фотографирование и распознавание номера. Иногда стоишь рядом с такси / машиной знакомого и пр., на которой поедешь, и проще так, чем вручную забивать.
А ещё, помнится, года два назад у Вас была какая-то глобальная проблема, из-за чего пришлось переустанавливать приложение (не обновлять, а из маркета ставить новый вариант) и заново регистрироваться с новыми паролями. Не поделитесь, что это было?.. Любопытно :)
akhromov Автор
18.04.2023 07:14+3Спасибо большое за обратную связь! Помнится была проблема, связанная с глобальным обновлением платформы, нужно было выпустить новые приложения и очень равномерно перенести на новые рельсы все объекты. На тот момент подумали, что такое переключение будет более понятно для пользователей с точки зрения логики. В текущей версии все обновления летят в установленные приложения, конечно же.
aborouhin
18.04.2023 07:14Ну надо сказать, что среди пользователей тогда царил полный хаос и возмущение :)
Думаю, тут вообще есть проблема, вытекающая из Вашей бизнес-модели - Вы с пользователями не общаетесь напрямую, между Вами "испорченный телефон" в лице эксплуатирующей компании посёлка. Как пользоваться - объясняют они, что изменилось - тоже, с проблемами - опять к ним. А они же ни разу не техподдержка, ни квалификации, ни мотивации. Рискну предположить, что это затрудняет коммуникацию в обе стороны, обратную связь нормально тоже не собрать.
akhromov Автор
18.04.2023 07:14+1Для пользователей приложения всегда работает наша Служба Заботы - в день мы обрабатываем более 100 обращений пользователей мобильного приложения. Постоянно работаем над улучшение качества ответов. Заявку можно отправить из приложения или на адрес support@pass24online.ru
aborouhin
18.04.2023 07:14Это прекрасно, но за несколько лет пользования Вашим приложением я об этом в первый раз узнал из этого комментария :) Думаю, из соседей по посёлку тоже вряд ли кто-то обращался напрямую с проблемами - это же сервис эксплуатирующей компании, все вопросы в единое окно к ней. И точно ни разу ни в самом приложении, ни по другим каналам не просили поделиться обратной связью.
Если что, это Villagio, может другие компании и по-другому работают и обеспечивают Вам прямой канал взаимодействия с пользователями.
EvgenyVilkov
18.04.2023 07:14+1Родное Бристолькино :)
akhromov Автор
18.04.2023 07:14+1КП Бристоль - был первый подопытным клиентом, где, собственно говоря, родился проект.
EvgenyVilkov
18.04.2023 07:14Да, сосед.
На самом деле большое спасибо от всех соседей :) Приятная фича что по разным поселкам и ЖК одно приложение и досрочно выбрать куда именно ты хочешь заказать пропуск
akhromov Автор
18.04.2023 07:14+1Невероятно приятно! Спасибо! Очень мотивирует развивать проект именно обратная связь и благодарность пользователей. PASS24.online, как мне кажется, стал стандартом удобного доступа на огороженные территории для поселков, ЖК, офисов, больниц и т.д.
SGordon123
интересует ценник и что действительно кто то заморачивается с днями недели и часами для уборщицы? А вдруг что то пойдет не так, когда сможет тогда пусть и проходит?
akhromov Автор
На объектах, где есть контроль доступа, а это поселки и ЖК с огороженной территорией, всегда надо четко говорить имя и номер авто и время прибытия. С точки зрения цены - тариф начинается от 10 000 рублей в месяц без ограничения пользователей мобильного приложения. Для управляющей компании окупается почти сразу.