Instruction file imported from alex-greatest/engels_traceability_system (
.cursor/rules/auto.mdc). Copyright stays with the author.
description: globs: * alwaysApply: false
PROJECT OVERVIEW
Cистема производственного учета/отслеживания для завода, производящего котлы, с функционалом:
Учет котлов и их компонентов Отслеживание производственных операций Управление сменами Управление пользователями Формирование отчетов Система использует современный стек технологий как на frontend (React, TypeScript, Material-UI), так и на backend (Spring Boot, JPA), что делает её масштабируемой и поддерживаемой.
CODE STYLE
Используйте PascalCase для компонентов React, camelCase для переменных и функций». -Строгий стиль java
- Use TypeScript strict mode
- Explicitly declare all types
- Avoid using any type
Performance Optimization
- Implement code splitting
- Use React.memo()
- Optimize re-rendering logic
FOLDER ORGANIZATION
src/main/ ├── frontend/ # Frontend часть приложения │ ├── components/ # React компоненты │ │ ├── api/ # API клиенты для бэкенда │ │ ├── boiler_additional_data/ # Компоненты для работы с доп. данными котлов │ │ ├── component_binding/ # Компоненты для привязки компонентов │ │ ├── component_set/ # Компоненты для наборов компонентов │ │ └── config/ # Конфигурация frontend │ ├── generated/ # Автогенерированные TypeScript типы и API клиенты │ ├── themes/ # Темы оформления │ └── views/ # React страницы/роуты └── java/ # Backend часть приложения └── com/ └── rena/ # Основной пакет приложения
Структура папок src\main\java\com\rena\application
controller
Содержит контроллеры приложения
result.websocket - WebSocket контроллеры для асинхронного обмена сообщениями
station.wp - Контроллеры для общих рабочих позиций (workposition)
station.wp.one - Контроллеры для первой рабочей позиции (wp1)
service
Содержит бизнес-логику приложения
shift - Сервисы для управления сменами (ShiftService)
Другие сервисы, включая TraceabilityOneService, BoilerWpOneService, BoilerOrderWpOneService и т.д.
repository
Слой доступа к данным
settings - Репозиторий для работы с настройками системы (SettingRepository)
exceptions
Кастомные исключения для приложения
RecordNotFoundException - Исключение при отсутствии записи
BoilerTraceabilityOK, BoilerTraceabilityPrevNOK, BoilerPrevStationEmpty - Исключения для конкретных бизнес-случаев
Ответственность компонентов:
Контроллеры - Обрабатывают входящие WebSocket сообщения, вызывают соответствующие сервисы и отправляют ответы клиентам
ShiftController* - Управление сменами
TraceabilityController* - Отслеживание компонентов
BoilerController* - Управление котлами и заказами
Сервисы - Содержат бизнес-логику:
ShiftService - Управление сменами и подсчет производства
Traceability* - Сервисы для прослеживаемости компонентов
BoilerOrder* - Работа с заказами котлов
Репозитории - Слой доступа к данным, обеспечивает взаимодействие с базой данных
Модели данных - Классы, представляющие сущности (Boiler, Shift, Canban и т.д.)
Используется микросервисная архитектура с разделением на frontend и backend
Frontend использует Vite для сборки и Vaadin Hilla для типобезопасного общения с backend
Backend построен на Spring Boot с использованием REST API
Для работы с данными используется JPA/Hibernate
Для миграций БД используется Liquibase
Функционал приложения: Судя по структуре папок и названиям контроллеров, это система для отслеживания прохождения котолов через линию
Структура папок src\main\frontend На основе предоставленного листинга, структура фронтенда имеет следующую организацию:
Корневые файлы и папки
index.html - Основной HTML файл приложения
index.tsx - Точка входа React-приложения
routes.tsx - Конфигурация маршрутизации
Основные директории:
components/ - Переиспользуемые компоненты
generated/ - Автоматически сгенерированный код
themes/ - Стили и темы оформления
views/ - Представления (страницы) приложения
components/
Содержит переиспользуемые React-компоненты:
api/ - API-клиенты для взаимодействия с бэкендом:
Файлы для различных сущностей: boiler.ts, user.ts, shift.ts, и т.д.
boiler_additional_data/ - Компоненты для работы с дополнительными данными котлов
component_binding/ - Компоненты для связывания компонентов
component_set/ - Компоненты для наборов компонентов
config/ - Конфигурационные компоненты:
auth/ - Авторизация
login/ - Компоненты для входа в систему
generated/
Автоматически сгенерированный код:
TypeScript интерфейсы, модели и контроллеры (Hilla framework)
Маршруты и модели данных
Клиентские адаптеры для серверных эндпоинтов
Содержит реализации DTO (Data Transfer Objects):
com/rena/application/entity/dto/ - DTO объекты:
boiler_type/ - Типы котлов
component/ - Компоненты
result/ - Результаты
shift/ - Смены
user/ - Пользователи и роли
themes/
Определяет визуальное оформление приложения:
traceability/ - Основная тема приложения
components/ - Стили для компонентов
styles.css - Глобальные стили
theme.json - Конфигурация темы
views/
Содержит страницы приложения:
boiler_type/ - Страницы для работы с типами котлов
components/ - Страницы для работы с компонентами:
set/ - Набор компонентов
type/ - Типы компонентов
results/ - Страницы для просмотра результатов:
boiler/ - Результаты по котлам:
components/ - Компоненты котлов
operation/ - Операции с котлами
order/ - Заказы котлов
shifts/ - Страницы для работы со сменами
users/ - Страницы для управления пользователями:
edit/ - Редактирование пользователей
password/ - Управление паролями
Фронтенд использует React с системой маршрутизации, которая поддерживает параметризованные пути (например, {userId}, {serialNumber}, {operationId}). Это позволяет создавать динамические страницы для просмотра и редактирования конкретных сущностей.
Архитектура фронтенда построена на компонентном подходе с четким разделением ответственности между компонентами, представлениями, API-клиентами и сгенерированными моделями данных.
Цель системы отслеживания операций и результатов
TECH STACK
Backend (Java): Spring Boot (видно по структуре папок src/main/java и application.properties) Maven (наличие pom.xml, mvnw) JPA/Hibernate (видно по структуре сущностей и репозиториев) Liquibase (папка db/changelog) Frontend (TypeScript/React):
React (структура компонентов в frontend/components) TypeScript (tsconfig.json, .ts файлы) Vite (vite.config.ts) Material-UI (видно по импортам MUI компонентов) Material React Table (для таблиц) Vaadin Hilla (видно по структуре generated endpoints и connect-client)
Component Development
- Use functional components
- Props must have type definitions
- Use CSS Modules
PROJECT-SPECIFIC STANDARDS
-для таблиц используй material-react-table -проверяй типы генерируемые hilla vaadin -контроллируй согласованность типов
WORKFLOW & RELEASE RULES
REFERENCE EXAMPLES
-src\main\frontend\components\api - здесь примеры api для вызова hilla -src\main\java\com\rena\application\controller - здесь котроллеры, которые используются для вызова из api hilla framwerok -src\main\java\com\rena\application\service - сервисы -src\main\java\com\rena\application\repository - репозитории
PROJECT DOCUMENTATION & CONTEXT SYSTEM
DEBUGGING
FINAL DOs AND DON'Ts
-Всегда показывайте полный контекст кода. Никогда не добавляйте новые внешние пакеты без явного одобрения
-src\main\frontend\generated - файлы сгенерованные hilla vadin и используемые в src\main\frontend\components\api. А так же в src\main\frontend\generated\com\rena\application\entity\dto
##Ссылки на документации
-materia-react-table: https://www.material-react-table.com/ -material-ui: https://mui.com/material-ui/getting-started/
-Отвечай на русском