Ищете крутые кейсы в digital? Посмотрите на номинантов Workspace Digital Awards 2026!
СофтЭксперт
Из ручного режима в управление одним кликом: разработали ПО для дорожных табло
СофтЭксперт
#Разработка программного обеспечения

Из ручного режима в управление одним кликом: разработали ПО для дорожных табло

12 
СофтЭксперт Россия, Тула
Поделиться: 0 0 0
Из ручного режима в управление одним кликом: разработали ПО для дорожных табло
Клиент

ООО «ДиСофт»

Сфера

Промышленность и оборудование

Регион

Россия

Сдано

Февраль 2026

Задача

«ДиСофт» — российская компания, специализирующаяся на производстве, установке и сервисном обслуживании светодиодных экранов и табло для дорожной инфраструктуры, рекламы и городских пространств.

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

Заказчик четко осознавал потребности в функционале и подготовил развернутое техническое задание со схемами, описанием бизнес-логики и требованиями к API. С этим ТЗ он обратился к нам, и мы начали проект с глубокого анализа и создания частных технических заданий (ЧТЗ) на каждый этап разработки.

Задачи:

1. Спроектировать и разработать серверную часть, административную панель и клиентское плеер-приложение.

2. Организовать безопасную аутентификацию пользователей с разграничением ролей.

3. Создать визуальный редактор экранов с поддержкой виджетов.

4. Внедрить механизм плейлистов и удаленного управления устройствами.

5. Реализовать интерактивную карту устройств с отображением их статуса.

Решение

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

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

1Авторизация и управление пользователями

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

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

Администратор создает учетные записи и видит всех зарегистрированных сотрудников, может активировать/деактивировать их одним кликом.

2Журналирование действий

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

В журнал событий попадают все запросы к серверу и фиксируется пользователь, выполнивший запрос, параметры и время запроса, результат (успешно/ошибка).

3Управление устройствами

Регистрация устройств инициируется клиентским ПО. При первом запуске оператор вводит адрес сервера и уникальный ключ (UID). После подтверждения устройство автоматически появляется в списке административной панели.

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

Чтобы упростить управление большим количеством табло, мы реализовали возможность объединять устройства в группы. Назначение плейлиста, перезагрузка, изменение расписания могут выполняться для всей группы одновременно. Это экономит часы ручной работы.

Устройство нельзя включить в группу, если его размеры экрана не совпадают с размерами группы.

4Интерактивная карта

Для визуального контроля всех зарегистрированных устройств система предоставляет интерактивную карту на основе внешнего картографического сервиса (Яндекс Карты). На ней отображаются все зарегистрированные устройства с разными маркерами для статусов «В сети/Активно», «В сети/Не активно» и «Не в сети».

При нажатии на маркер оператор видит всю необходимую информацию и может отправить команду на перезагрузку (доступно только для устройств «В сети»).

Зеленый маркер — устройство онлайн и транслирует контент, серый — офлайн. При клике открывается попап с UID, статусом, группой и кнопкой перезагрузки.

5Редактор экранов и плейлисты

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

В распоряжении оператора находятся шесть типов виджетов: Текст, Изображение, Дорожный знак, Время и дата, Индикатор трафика, Маршрут.

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

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

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

Мы автоматизировали сверку размеров устройства с размером экрана плейлиста при его назначении. Если размеры не совпадают — назначение блокируется с поясняющим сообщением. Это исключает ошибки отображения на этапе настройки.

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

6Хранение данных и взаимодействие с клиентским ПО

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

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

Результат

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

«ДиСофт» получил ПО, которое оптимизирует целый ряд рабочих процессов:

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

• выросла прозрачность благодаря журналированию действий операторов и истории каждого экрана;

• увеличилась гибкость воспроизведения благодаря формированию групп устройств;

• упростился контроль состояния мониторов благодаря дистанционному управлению экранами.

Комментарий агентства

Анастасия Осипова
Анастасия Осипова

Проектный менеджер

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

https://site.sfx-tula.ru/news/solutions/11401/

Стек технологий


Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

СофтЭксперт с удовольствием обсудит вашу задачу

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