Skip to content

About

Модуль выполнения бизнес-логики для мобильного приложения SCADA

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

309 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English version here

🥛 SCADA Mobile

Backend Frontend Database Deploy

📌 Описание

SCADA Mobile — система оперативного оповещения сотрудников крупного молочного предприятия о простоях и ЧП на производственных линиях.

Когда линия или оборудование останавливается, сотрудники в других цехах часто не понимают причину (закончились заготовки/материалы, оператор отвлёкся, узел стоит) — и «эффект домино» останавливает упаковку, палетирование и отгрузку. Приложение быстро доносит всем заинтересованным сотрудникам, что произошло, где и почему участок стоит.

Общий пайплайн: событие на оборудовании → считывание через PrintSrv → backend на Spring агрегирует и нормализует событие → рассылка уведомлений → отображение в веб-клиенте.

🎯 Возможности

  • Главная панель — список цехов с состоянием (норма/проблема) и количеством аппаратов и линий.
  • Автоматы цеха — карточки автоматов с данными текущей партии и значками активных уведомлений.
  • Карточка автомата — вкладки «Партия», «Устройства», «Очередь», «Журнал»: текущая партия (описание, EAN, номер, даты выработки/годности), состояние периферии, очередь команд, история ошибок.
  • Уведомления — вызов ответственных сотрудников прямо с карточки автомата; входящие уведомления от других сотрудников с вибрацией на устройстве.
  • Админ-панель — управление сотрудниками (роли, табельные номера, привязка автоматов) и автоматами.
  • PWA — веб-клиент устанавливается на устройство и доставляет уведомления через Service Worker, без отдельного нативного приложения.

🖼️ Скриншоты

1️⃣ Список цехов
Список цехов
2️⃣ Автоматы цеха
Автоматы цеха со значком уведомления
3️⃣ Список автоматов внутри цеха
Список автоматов внутри цеха
4️⃣ Вызов уведомления ответственным
Нажатие на карточку автомата для вызова уведомления ответственным сотрудникам
5️⃣ Карточка автомата, вкладка «Партия»
Карточка автомата, вкладка «Партия»
6️⃣ Вкладка «Партия» с включённым уведомлением
Карточка автомата, вкладка «Партия» с включённым уведомлением
7️⃣ Вкладка «Устройства»
Карточка автомата, вкладка «Устройства»
8️⃣ Вкладка «Очередь»
Карточка автомата, вкладка «Очередь»
9️⃣ Вкладка «Ошибки», без ошибок
Карточка автомата, вкладка «Ошибки» без активных ошибок
🔟 Вкладка «Ошибки» с активной ошибкой
Карточка автомата, вкладка «Ошибки» с одной активной ошибкой
1️⃣1️⃣ Подтверждение уведомления
Окно подтверждения снятия или отправки уведомления
1️⃣2️⃣ Вкладка уведомлений
Вкладка уведомлений
1️⃣3️⃣ Уведомления от сотрудников (пусто)
Вкладка уведомлений от других сотрудников без уведомлений
1️⃣4️⃣ Экран входа
Экран входа
1️⃣5️⃣ Страница пользователя
Страница пользователя
1️⃣6️⃣ Настройки уведомлений пользователя
Страница пользователя, настройки уведомлений
1️⃣7️⃣ Админ-панель: главная страница
Админ-панель, главная страница

🛠️ Состав системы и технологии

  • backend — Spring Boot 4 / Java 21: REST + WebSocket API, JWT-аутентификация, API админ-панели, health-check, интеграция с PrintSrv, Flyway-миграции, PostgreSQL.
  • frontend — React + TypeScript + Vite (PWA), админка на React Admin.
  • Docker — docker-compose сценарии для prod-запуска уже в репозитории; в планах оркестрация (Kubernetes) во внутренней сети компании.

📋 Состояние проекта (август 2026)

  • Базовые части работают: backend, веб-клиент (PWA), админ-панель, уведомления.
  • TWA/Android. Нативная оболочка (Bubblewrap) выведена из репозитория: ключевая потребность (уведомления на устройствах с вибрацией) закрывается веб-клиентом в Chrome через Service Worker, а для полноценного TWA в корпоративной сети требуется строгий HTTPS, что организационно сложно. Остаётся потенциальной опцией на будущее.
  • Планируется миграция на Kafka. Прямой TCP-опрос PrintServer заменяется чтением из Kafka — опрос берёт на себя отдельный Gateway. См. ТЗ_миграция_на_Kafka.md и ТЗ_Gateway_Якимовец.md.

🚀 Быстрый локальный запуск

Что нужно установить

  • Java 21+
  • Node.js 20+ и npm
  • Docker Desktop (только для prod режима)

Вариант 1. Запуск по частям (рекомендуемый для разработки)

  1. Запустите backend: make back-run.
  2. В другом терминале установите зависимости frontend (один раз): make front-install.
  3. Запустите frontend: make front-dev.
  4. Откройте в браузере:

Вариант 2. Запуск в Docker (только prod)

Запуск: make docker-prod-up. Остановка: make docker-prod-down.

Подробно про Docker, prod-профиль и env-файлы: RUN_PROJECT_DOCKER.md.

Полный список шорткатов: make help (см. MAKEFILE.md).

📚 Документация

Чтобы не дублировать информацию, детализация разнесена по отдельным файлам:

About

Модуль выполнения бизнес-логики для мобильного приложения SCADA

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages