Разработка HRM-системы контроля рабочей дисциплины (NDA)

В компаниях с распределенной филиальной сетью (ритейл, логистика, производство, выездные бригады) контроль присутствия линейного персонала на рабочих местах напрямую влияет на операционную эффективность бизнеса. Недовыходы, опоздания и махинации с табелями учета рабочего времени ведут к прямым финансовым потерям. Проект выполнен под NDA для крупного торгово-производственного холдинга.

Это масштабный ИТ-комплекс, состоящий из кроссплатформенного мобильного приложения сотрудника (под Android и iOS) и продвинутой веб-панели управления для менеджмента и HR-департамента. Система переводит учет рабочего времени в полностью автоматический режим, исключая человеческий фактор и предотвращая любые попытки фальсификации данных.

Задачи проекта

  • Жесткая валидация присутствия (Anti-Fraud): Главный вызов — разработка алгоритмов, подтверждающих фактическое нахождение сотрудника на конкретном объекте в момент начала и окончания смены. Требовалось пресечь попытки удаленного «чекина» через программы подмены GPS-координат (Fake GPS) или передачу учетных записей коллегам.
  • Контроль устройств (Device Binding): Исключение сценариев, при которых один сотрудник с одного смартфона авторизует и «отмечает» на смене нескольких своих коллег, фактически отсутствующих на рабочем месте.
  • Сквозная аналитика для менеджмента: Создание дашбордов для директоров магазинов, региональных руководителей и HR-директоров, позволяющих в реальном времени видеть статистику нарушений, опозданий и прогулов в разрезе подразделений.
  • Бесшовный мэтчинг с 1С: Полная автоматизация передачи данных. Информация о фактически отработанных часах должна без ручного вмешательства попадать в корпоративную систему «1С» для корректного расчета заработной платы.

Результаты

  • Прямая экономия ФОТ до 12–15%: Полное искоренение «приписок» неотработанных часов, фиктивных выходов и закрытия смен за отсутствующих коллег привело к моментальной оптимизации фонда оплаты труда.
  • 100% защита от фрода: Внедренные алгоритмы детекции Fake GPS во Flutter и кастомная аппаратная привязка аккаунтов на Symfony свели попытки обмана системы к нулю.
  • Ликвидация ручного труда в HR: Благодаря интеграции через RabbitMQ автоматическая выгрузка точных табелей учета рабочего времени напрямую в 1С сократила время на расчет и начисление заработной платы расчетным отделом на 70%.
  • Прозрачный менеджмент: Высшее руководство холдинга получило объективный инструмент оценки эффективности линейных менеджеров и директоров филиалов на основе жестких цифр и графиков дисциплины их подчиненных во Vue 3 панели.
  • Архитектура и техническое решение

    Для создания отказоустойчивой системы с повышенным уровнем защиты от компрометации данных была спроектирована специализированная клиент-серверная архитектура с четким распределением ролей по стеку:

    • Мобильная экосистема с защитой от фрода на Flutter: Мобильное приложение сотрудника разработано на фреймворке Flutter под платформы Android и iOS. Мы внедрили нативные плагины для работы с гео-сервисами, которые на низком уровне операционной системы проверяют флаг isMockProvider. Если сотрудник использует программы имитации расположения или эмуляторы, приложение блокирует возможность подтверждения смены и отправляет скрытый алерт в админку.
    • Бизнес-логика и HRM-контур на Symfony: Проверка уникальности пользователей, фиксация выходов на смену с точным временем, контроль нахождения на объекте и авторизационные сессии реализованы на фреймворке Symfony.
    • Асинхронная интеграция с «1С:Предприятие» через RabbitMQ: Обмен данными с корпоративной 1С настроен через шину брокера сообщений RabbitMQ. Это гарантирует, что даже во время планового обслуживания или перегрузки серверов 1С мобильные приложения сотрудников продолжают стабильно фиксировать рабочие смены локально и синхронизируют данные сразу после восстановления связи.
    • Аппаратная привязка (Device ID): При первой авторизации во Flutter-приложении считывается уникальный хэш аппаратных идентификаторов смартфона. Система на Symfony жестко «привязывает» аккаунт сотрудника к его физическому устройству. Запуск учетной записи на другом телефоне возможен только после подтверждения и сброса привязки руководителем в админке.
    • Аналитическая панель на Vue 3: Фронтенд панели администратора для руководителей и HR-специалистов реализован на Vue 3 как высокопроизводительный SPA. Интерфейс адаптирован под обработку больших табличных данных: руководители могут в один клик строить графики нарушений дисциплины, фильтровать статистику по конкретным сотрудникам, магазинам, руководителям и регионам.
  • Реализованные бизнес-механики

    • Гео-зависимый чек-ин (Geofencing): Система импортирует из 1С точные координаты и радиус (например, 50 метров) всех торговых точек или производственных объектов. Кнопка «Начать смену» становится активной во Flutter-приложении только тогда, когда GPS-модуль смартфона подтверждает нахождение сотрудника внутри заданной геозоны.
    • Контроль нахождения на смене: Приложение периодически (в случайные промежутки времени в течение рабочего дня) запрашивает у сотрудника быстрое подтверждение нахождения на объекте через push-уведомление, предотвращая сценарии, когда работник отметился утром, ушел с объекта и вернулся только к вечеру.
    • Автоматические триггеры нарушений: Если сотрудник не отметился о прибытии в течение заданного времени, система автоматически генерирует инцидент «Опоздание» или «Прогул» и выводит статистику в Vue 3 панель управления для оперативного реагирования менеджмента.

Расскажите о вашем проекте и задайте вопросы — мы скоро ответим

Как не слить бюджет? Проверьте подрядчика

  • Вам назвали точную цену за 5 минут без детального ТЗ?
  • Кому будут принадлежать авторские права на исходный код?
  • Что вы будете делать, если ведущий разработчик проекта уйдет?
  • Как вы будете контролировать работу — поэтапно или «в черную»?

Оставить заявку

Оставьте заявку на бесплатную 30-минутную консультацию с нашим тимлидом. Разберем вашу задачу и предложим архитектуру решения

Спасибо!

Мы свяжемся с вами в ближайшее время