КПП в кармане: как мы автоматизировали контроль доступа на территорию с нуля

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

Сегодня в блоге ЛАНИТ я хочу поделиться с вами историей разработки сервиса PASS24.online, который используется в коттеджных посёлках, жилых комплексах и бизнес-центрах для того, чтобы управлять доступом людей и автомобилей на территорию. Фактически за несколько лет мы довели идею полезного и удобного мобильного приложения до функционального сервиса, который уже ищут заказчики. Мой рассказ может быть интересен тем, кто хочет создать свой программный продукт и размышляет о запуске чего-то реально нового. Под катом — некоторые подробности о создании нашего сервиса, а также примеры и критерии выбора дополнительных фич для разработки. 

Запуская стартап, можно пойти двумя путями — создать что-то лучше, чем у других, или сформировать собственную нишу и продвигать свой продукт в ней. Второй вариант звучит интереснее, но на практике он может потребовать даже больше работы и самоотдачи, ведь вы попадаете тем самым в нишу Blue Ocean. “Что? Система управления шлагбаумом? Да она у нас есть. Умная и автоматическая? Нет, спасибо, не нужно…” То есть конкурентов нет. Но и спрос получается нулевой, потому что и про вас не слышали, и про то, что от вашего продукта есть польза, тоже не слышали.

На личном опыте

Без лишней скромности скажу, что идею PASS24.online я придумал сам после очередной перепалки с охранниками на въезде в коттеджный поселок, в котором моя семья завершала ремонт жилья. Если вы проходили через эти адские испытания, то можете себе представить, что в посёлке, где большинство домов строятся, постоянно ввозят какие-то стройматериалы, заходят и выходят рабочие, которые могут меняться, приезжают курьеры и доставки из разных магазинов. Охрана перегружена, не отвечает на телефон, потому что в данный момент разбирается, к кому приехал очередной работник и как именно пишется его имя.

В результате получается сразу пакет проблем. Получить пропуск на человека или автомобиль — очень затратное по времени и нервам дело. Охранник фактически не охраняет территорию, потому что занят телефоном, бумажками (или в крайнем случае списком на компьютере).

В этот момент у меня возникла мысль: хорошо бы взять и оформить пропуск в приложении, просто оставить там заявку. С этого и началась история PASS24.online.

Как работает сервис

Когда я рассказываю эту историю в других местах, обычно до технических подробностей дело не доходит. Но мы же на Хабре. Поэтому расскажу о том, как устроен сегодня сервис внутри.

В качестве основы была взята платформа Laravel v6, которая фактически предоставляет веб-сервис для работы системы. Все данные хранятся в Mysql 8, а поиск по пропускам реализован на базе Elasticsearch. Она же выполняет роль центрифуги для веб-сокетов.

Как видите, ничего особенного, стандартные компоненты. Далее на основе всего вышеперечисленного мы написали сервис с нуля, используя php 7.2.3 и JavaScript. 

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

Backend использует API (REST). Общение с клиентами происходит с помощью JSON-схем по защищенному протоколу https. Опять же тут нет ничего особенного. Используются такие действия, как GET, POST, PUT, DELETE и PATCH.

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

Все запросы идут через поддомен системы, который выделяется для каждого объекта — коттеджного поселка, жилого комплекса, торгового и делового центра или предприятия. Токен выдается для одной системы, и не может вызывать данные и взаимодействовать с другими системами. Только с данными внутри своей системы (адреса, пользователи, собственники, пропуски и т. д.).

Интеграции работают по такому же принципу. Любые сторонние системы сперва авторизуются и получают токен, а потом общаются с системой через API. Например, получают пропуска, создают, изменяют статусы и др.

Базовый функционал и дальнейшее развитие

Сначала нужно было подготовить MVP без лишних затрат на разработку и начать её продвижение. Поэтому мы с коллегами выделили базовые функции, которые необходимы для работы.

Интерфейс авторизует пользователя по номеру телефона. Он позволяет:

  • заказать пропуск на человека или автомобиль;

  • отозвать пропуск на человека или автомобиль;

  • заказать временный пропуск;

  • сформировать шаблон для заказа пропуска;

  • посмотреть отчеты и статистику — кто из ваших гостей когда пришел и когда ушел;

Приложение пользователя
Приложение пользователя
WEB-интерфейс охранника
WEB-интерфейс охранника
  • предоставляет информацию о выданных пропусках;

  • помогает проверить, есть ли пропуск на определенного человека или автомобиль;

  • позволяет связаться с владельцем недвижимости, если возникла какая-то проблема;

WEB-интерфейс управляющей компании
WEB-интерфейс управляющей компании
  • отображает статистику движения людей и автомобилей;

  • позволяет отслеживать работу охранников.

Уже в таком виде PASS24.online был готов к распространению по тем объектам, где подобное решение действительно нужно. Дальше мы прикручивали к нему авторизацию по различным Bluetooth и NFC-ключам, средства автоматизации и интеграции с другими ИТ-системами, средства компьютерного зрения для распознавания номеров автомобилей и т. д.

Реализация
Реализация

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

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

Во-вторых, сильно улучшила юзабилити продукта фича, которая помогает экономить время при заказе пропуска на кого-то. Представьте, к вам едет курьер. В этом случае нужно выяснять, как его зовут, как он выглядит, какая у него машина, а потом передать эту информацию охране. Чтобы снизить степень сложности, мы запустили сервис «Приглашение». Это ссылка для внешнего пользователя, где он сам заполняет данные гостя и получает QR-код для входа или въезда на территорию.

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

Как начать это продавать?

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

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

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

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

Источник: https://habr.com/ru/companies/lanit/articles/728408/


Интересные статьи

Интересные статьи

В версии 1.51 Brave усилит защиту пользователей, распространив систему браузерных пермиссий на устаревший метод авторизации Google Sign-In, который использует сторонние куки или другие следящие технол...
Redux и MobX больше не нужны ? Туториал для новичков по EffectorJS - современному и удобному стейт-менджеру. Рассмотрим основные возможности, работу ядра, и какие проблемы решает. На примерах.
Всем доброго времени суток!Публикую обзор книги "Начинаем программировать на Python" от автора Тони Гэддиса.Стоит читать? Да! Почему? Максимально подробно опишу в статье.Кто целевая аудитория книги?Кн...
Продолжаем разрабатывать систему заметок с нуля.В первой части мы спроектировали микросервисную архитектуру.Во второй части разработали RESTful API Service на Golang cо Swagger и автори...
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-са...