Изменения документа VKPHT. Релиз нота R4 (24Q1)
Редактировал(а) Александра Баруткина 2024/06/27 13:20
От версии 8.1
отредактировано Александра Баруткина
на 2024/05/28 11:50
на 2024/05/28 11:50
Изменить комментарий:
К данной версии нет комментариев
К версии 5.1
отредактировано Александра Баруткина
на 2024/05/28 08:44
на 2024/05/28 08:44
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -14,7 +14,6 @@ 14 14 15 15 Всё это позволяет максимально гибко настроить систему и через Административные панели системы выстраивать матрицу ролей и их полномочия. 16 16 17 -(% class="table-bordered" %) 18 18 |**Тема**|**Описание **|**Задача RM** 19 19 |Реализация экранных форм с помощью административных панелей - "Управление правами доступа"|((( 20 20 * Реализована модель данных ... ... @@ -75,361 +75,28 @@ 75 75 76 76 = AWA. Управление нотификациями = 77 77 78 -(% class="table-bordered" style="width:1109px" %)77 +(% style="width:1109px" %) 79 79 |**Тема**|**Описание **|**Задача RM** 80 80 | | |(% style="width:252px" %) 81 -|((( 82 -Добавление возможности просмотра почт получателей у выбранных подразделений. 83 -)))|Добавлена возможность просмотра почт у выбранных подразделений: при нажатии на кнопку "Список адресов" открывается попап "Список адресатов" с перечнем почт сотрудников подразделения, которым отправится уведомление.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101679>>url:https://redmine.goodt.me/issues/101679]] 84 -|Отредактированы данные таблиц бд notification на стенде [[https:~~/~~/vkpht-dev.goodt.me>>url:https://vkpht-dev.goodt.me/editor/#/apps]] для миграции.|Отредактированы данные таблиц бд notification на стенде [[https:~~/~~/vkpht-dev.goodt.me>>url:https://vkpht-dev.goodt.me/editor/#/apps]] для миграции: 80 +| |Добавлена возможность просмотра почт у выбранных подразделений: при нажатии на кнопку "Список адресов" открывается попап "Список адресатов" с перечнем почт сотрудников подразделения, которым отправится уведомление.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101679>>url:https://redmine.goodt.me/issues/101679]] 81 +| |Отредактированы данные таблиц бд notification на стенде [[https:~~/~~/vkpht-dev.goodt.me>>url:https://vkpht-dev.goodt.me/editor/#/apps]] для миграции: 85 85 удалены тестовые и закрытые записи, проставлены признаки у системных записей (is_system=true).|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/114431>>url:https://redmine.goodt.me/issues/114431]] 86 -| Добавлениеполя is_system|Добавлено поле is_system c типом данных bool (true/false), со значением по умолчанию false в таблицы бд notification.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/114424>>url:https://redmine.goodt.me/issues/114424]]87 -| Добавлениепагинации|Добавлен на страницу выбора получателей инструмента управления количеством отображаемых записей - Пагинация.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101674>>url:https://redmine.goodt.me/issues/101674]]88 -| Добавлениевсплывающего сообщения при успешном создании события|Добавили всплывающее сообщение при успешном создании события в реестрах "Уведомления о событиях" и "Ручные рассылки".83 +| |Добавлено поле is_system c типом данных bool (true/false), со значением по умолчанию false в таблицы бд notification.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/114424>>url:https://redmine.goodt.me/issues/114424]] 84 +| |Добавлен на страницу выбора получателей инструмента управления количеством отображаемых записей - Пагинация.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101674>>url:https://redmine.goodt.me/issues/101674]] 85 +| |Добавили всплывающее сообщение при успешном создании события в реестрах "Уведомления о событиях" и "Ручные рассылки". 89 89 Текстовка: "Событие "Код события" "Название события" создано". 90 90 В сообщении присутствует гиперссылка, при нажатии на которую, происходит переход к созданному событию (автоматически устанавливается фильтр в код события): при нажатии на текст/кнопку записывается в хранилище переменная(которую слушают таблица и фильтр) и закрывается попап.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/108113>>url:https://redmine.goodt.me/issues/108113]] 91 -| Попапдобавления получателей|Вывели в табличном представлении (попап добавления получателей) табельный номер сотрудника. По атрибуту доступна фильтрация и поиск.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101676>>url:https://redmine.goodt.me/issues/101676]]92 -| Выводполного списка получателей в отдельном попапе|Реализован вывод полного списка получателей в отдельном попапе, а не в табличном представлении. Исправлено на странице Уведомления о событиях и Ручные рассылки.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101681>>url:https://redmine.goodt.me/issues/101681]]93 -| Добавлениекнопки "Удалить всех"|(((88 +| |Вывели в табличном представлении (попап добавления получателей) табельный номер сотрудника. По атрибуту доступна фильтрация и поиск.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101676>>url:https://redmine.goodt.me/issues/101676]] 89 +| |Реализован вывод полного списка получателей в отдельном попапе, а не в табличном представлении. Исправлено на странице Уведомления о событиях и Ручные рассылки.|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101681>>url:https://redmine.goodt.me/issues/101681]] 90 +| |((( 94 94 В карточках "Добавить шаблон" и "Редактировать шаблон" реестров "Уведомления о событиях" и "Ручные рассылки" добавили кнопку "Удалить всех", при нажатии на которую удаляются все выбранные получатели. 95 95 )))|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/101661>>url:https://redmine.goodt.me/issues/101661]] 96 -| Доработкавиджета ElemCreateNitificationEvent|(((93 +| |((( 97 97 Доработка виджета ElemCreateNitificationEvent: кнопка "Отправить уведомления". Кнопка неактивна для событий, у которых не создан ни один шаблон уведомления. 98 98 )))|(% style="width:252px" %)[[https:~~/~~/redmine.goodt.me/issues/96705>>url:https://redmine.goodt.me/issues/96705]] 99 99 100 100 = BPS. Управление фоновыми программам = 101 101 102 -(% class="table-bordered" style="width:1109px" %)99 +(% style="width:1109px" %) 103 103 |**Тема**|**Описание **|**Задача RM** 104 104 |Реализация фоновой программы TASKS_REASSIGNMENT.|Реализация фоновой программы TASKS_REASSIGNMENT. Фоновая программа переноса задач, в случаях, когда у сотрудника появляется новое назначение и имеется закрытое старое назначение|[[https:~~/~~/redmine.goodt.me/issues/106128>>url:https://redmine.goodt.me/issues/106128]] 105 - 106 -= BPM. Управление конфигурацией бизнес-объектов = 107 - 108 -(% class="table-bordered" %) 109 -|**Тема**|**Описание **|**Задача RM** 110 -|Удаление добавленного статуса на экране Матрица статусных переходов|- Добавлена иконка корзины для удаления неиспользуемого в статусной модели статуса|[[https:~~/~~/redmine.goodt.me/issues/114771>>url:https://redmine.goodt.me/issues/114771]] 111 -|Исправление возможности использования различных сервисов при конфигурации справочников|- Проведен рефакторинг методов конфигурации севрисов, к которым возможно обращение для получения данных справочника|[[https:~~/~~/redmine.goodt.me/issues/107135>>url:https://redmine.goodt.me/issues/107135]] 112 -|Изменения в UX для справочников административной панели|- Проведены различные исправления и изменения в пользовательском пути при работе со справочниками административной панели|((( 113 -[[https:~~/~~/redmine.goodt.me/issues/114978>>url:https://redmine.goodt.me/issues/114978]] 114 - 115 -[[https:~~/~~/redmine.goodt.me/issues/114306>>url:https://redmine.goodt.me/issues/114306]] 116 -))) 117 -|Рефакторинг интерфейса заведения поля бизнес-объекта|((( 118 -- Проведена группировка конфигурации поля бизнес-объекта 119 - 120 -- Добавлены дополнительные возможности конфигурации 121 -)))|[[https:~~/~~/redmine.goodt.me/issues/113104>>url:https://redmine.goodt.me/issues/113104]] 122 -|Ведение нового типа владельца БО - employee |- Реализована механика и необходимые проверки для ведения бизнес-объектов с типом владельца - работник (employee) |[[https:~~/~~/redmine.goodt.me/issues/104881>>url:https://redmine.goodt.me/issues/104881]] 123 - 124 -= CFG. Управление конфигурацией = 125 - 126 -(% class="table-bordered" %) 127 -|**Тема**|**Описание **|**Задача RM** 128 -|Доработка модели данных для учета системных записей и возможности управления их доступностью для редактирования при настройке системы на проекте.|((( 129 -* Структура таблиц обновлена с учетом признаков is_system и is_editable 130 -* Изменения учтены в работе HATEOAS методов для таблиц 131 -)))|((( 132 -[[https:~~/~~/redmine.goodt.me/issues/110241>>url:https://redmine.goodt.me/issues/110241]] 133 - 134 -Актуализация модели данных с учетом признаков is_system и is_editable 135 -))) 136 - 137 -= INT. Управление интеграцией = 138 - 139 -INT0 Общие требования 140 - 141 -(% class="table-bordered" %) 142 -|**Тема**|**Описание **|**Задача RM** 143 -|Создание сервиса и БД интеграции 144 -Создание структур данных|((( 145 -* Создан сервис и БД интеграции. 146 -* Созданы структуры данных. 147 -* Предзаполнены таблицы в БД. 148 -* Развернут SFTP сервер. 149 - 150 - 151 -)))|((( 152 -[[https:~~/~~/redmine.goodt.me/issues/100207>>url:https://redmine.goodt.me/issues/100207]] 153 - 154 -API_ИП/1 Разработка механизма хранения информации по интеграции 155 -))) 156 -|Реализация метода разбора данных из файла в БД интеграции|Реализован метод разбора xlsx файла **PutFileInBuffer **, проверка на структуру файла, на то что файл не пуст и забор его данных в БД интеграции.|((( 157 -[[https:~~/~~/redmine.goodt.me/issues/99568>>url:https://redmine.goodt.me/issues/99568]] 158 - 159 -Реализация API метода PutFileInBuffer для разбора данных заполненного шаблона 160 -))) 161 -|((( 162 -Регистрация модуля в метамодели и разработка базовых методов 163 -)))|((( 164 -* Модуль интеграции зарегистрирован в метамодели. 165 -* Реализован hateoas и представления бизнес-модели. 166 -* Реализованы настройки работы с SFTP сервером. 167 -* Реализованы методы: 168 -** **GetFileList **/api/import/buffer/file-list - Вызывается по кнопке "Создать поток" на странице правил обработки данных по шаблонам. Метод создает интеграционный поток и формирует список файлов соответствующие критериям (путь к сфтп, префикс, расширение). Регистрирует в системе записи интеграционных файлов (flow_file) 169 -** **GetFileData **/api/import/buffer/file-data - Вызывается по кнопке "Забрать данные в буффер" на странице правил обработки данных по шаблонам. Метод заполняет данные flow_file, вызывает метод **PutFileInBuffer**, вызывает метод **MoveFile **по результату забора данных 170 -** ** GetExecuteFlowFileListCheck **/api/integration/execution/check -Вызывается по нажатию "проверить без вставки" Метод проверяет данные в БД интеграции. 171 -** ** GetExecuteFlowFileListCheckInsert **/api/integration/execution/insert - Вызывается по нажатию "проверить и загрузить" Метод проверяет данные в БД интеграции и загружает в целевую систему. 172 -** **MoveFile - **забирает файл по указанному пути и перекладывает файл по указанному пути 173 -* В рамках методов реализовано логирование ошибок. 174 -* Доработана структура данных БД интеграции. 175 -)))|((( 176 -[[https:~~/~~/redmine.goodt.me/issues/102235>>url:https://redmine.goodt.me/issues/102235]] 177 - 178 -API_ИП/2 Разработка методов (базовые) 179 -))) 180 -|Разработка базовых интерфейсов для прохождения основного сценария|((( 181 -* Реализованы на UI основные таблицы: 182 -** Просмотр шаблонов. 183 -** Просмотр типов файла интеграционной платформы. 184 -** Просмотр состава данных шаблона интеграции. 185 -** Просмотр алгоритма проверки шаблонов интеграции. 186 -** Просмотр типов файлов для интеграции. 187 -** Просмотр реестра источников файлов для интеграции. 188 -** Просмотр правил обработки данных по шаблонам по интеграционным потокам. 189 -** Просмотр правил обработки данных по шаблонам. 190 -** Просмотр реестр интеграционных потоков. 191 -** Просмотр файлов интеграции. 192 -** Просмотр строк файлов интеграции. 193 -** Редактирование файлов интеграционного потока. 194 -** Редактирование карточки интеграционного потока. 195 -** Редактирование карточки правил обработки данных по шаблонам. 196 -* Реализованы элементы на UI, которые обеспечивают вызов методов и прохождение всего сценария работы с интеграционным потоком на примере любого бизнес- объекта: 197 -** Создание потока через вызов метода. 198 -** Создание и обработки потока через вызов метода. 199 -** Забор данных в БД интеграции через вызов метода. 200 -** Проверка и загрузка через вызов метода. 201 -** Формирование и скачивание отчетности через вызов метода. 202 -** Скачивание пустого шаблона через вызов метода. 203 -)))|((( 204 -[[https:~~/~~/redmine.goodt.me/issues/109401>>url:https://redmine.goodt.me/issues/109401]] 205 - 206 -API_ИП/2 Разработка интерфейсов 207 -))) 208 -|Разработка мастер методов для массового создания и обработки потоков |((( 209 -Реализованы мастер методы: 210 - 211 -* **executeAllIntegrationSteps **/api/integration/template-flow/{id}/execute - Вызывается по кнопке "Создать и обработать поток" для определенного правила обработки. Мастер метод который вызывает внутри себя подряд все методы: 212 -** /api/import/buffer/file-list 213 -** /api/import/buffer/file-data 214 -** /api/integration/execution/check 215 -** /api/integration/execution/insert 216 -* ((( 217 - **ChainLaunch **/api/integration/template-flow/execute - Вызывается по кнопке "Создать и обработать все потоки поток" для определенного правила обработки. Мастер метод который вызывает внутри себя подряд все методы: 218 - 219 -* /api/import/buffer/file-list 220 -* /api/import/buffer/file-data 221 -* /api/integration/execution/check 222 -* /api/integration/execution/insert 223 -))) 224 -)))|((( 225 -[[https:~~/~~/redmine.goodt.me/issues/109436>>url:https://redmine.goodt.me/issues/109436]] 226 - 227 -API_ИП/2 Разработка расширенного списка методов, реализующих функционал массового запуска базовых методов ИП 228 - 229 - 230 -))) 231 -|Стабилизация интерфейса и работы системы|((( 232 -Свёрстаны все страницы интерфейса 233 - 234 -Реализованы методы: 235 - 236 -* **GetEmptyTemplate **api/integration/api/import/buffer/file/{id}/excel - Вызывается по кнопке "Скачать". Метод генерирует пустой шаблон для заполнения на основе данных БД. 237 -* **ErrorLinesDownload **api/integration/api/template/{id}/generate - Вызывается по кнопке "Загрузить ошибочные строки". Метод генерирует файл сapi/integration/api/template/{id}/generate - Вызывается по кнопке "Загрузить о ошибочными строками, которые не загрузились в целевую систему. 238 - 239 - 240 -)))|((( 241 -[[https:~~/~~/redmine.goodt.me/issues/104186>>url:https://redmine.goodt.me/issues/104186]] 242 - 243 -API_ИП/3 Стабилизация 244 -))) 245 -|Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть 1 |((( 246 -Для таблиц: 247 - 248 -* Legal_entity 249 -* Division 250 -* Person 251 -* Employee 252 -* Position 253 -* Role 254 -* Division_team 255 - 256 -Выполнено: 257 - 258 -* Обновлена структура хранения данных в БД. 259 -* Исправлены представления. 260 -* Реализована обработка и вставка в целевую систему шаблонов. 261 -* Подготовлены пустые xlsx шаблоны. 262 -* Подготовлены заполненные xlsx шаблоны. 263 - 264 - 265 -)))|((( 266 -[[https:~~/~~/redmine.goodt.me/issues/101583>>url:https://redmine.goodt.me/issues/101583]] 267 - 268 -API (Интеграционная платформа). Загрузка оргструктуры. Часть 1 269 -))) 270 -|Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть 2|((( 271 -Для таблиц: 272 - 273 -* Project 274 -* Function 275 -* Legal_entity_team 276 -* Division_function 277 -* Function_team 278 -* Project_team 279 -* Work_function 280 -* Location 281 - 282 -Выполнено: 283 - 284 -* Обновлена структура хранения данных в БД. 285 -* Исправлены представления. 286 -* Реализована обработка и вставка в целевую систему шаблонов. 287 -* Подготовлены пустые xlsx шаблоны. 288 -* Подготовлены заполненные xlsx шаблоны. 289 - 290 - 291 -)))|((( 292 -[[https:~~/~~/redmine.goodt.me/issues/101584>>url:https://redmine.goodt.me/issues/101584]] 293 - 294 -API (Интеграционная платформа). Загрузка оргструктуры. Часть 2 295 -))) 296 -|Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть 3|((( 297 -Для таблиц: 298 - 299 -* Structure 300 -* Workplace 301 -* Person_disability 302 -* Person_privilege 303 -* Personnel_document 304 -* Employee_condition 305 -* Placement 306 -* employee_education 307 -* work_experience 308 - 309 -Выполнено: 310 - 311 -* Обновлена структура хранения данных в БД. 312 -* Исправлена представления. 313 -* Реализована обработка и вставка в целевую систему шаблонов. 314 -* Подготовлены пустые xlsx шаблоны. 315 -* Подготовлены заполненные xlsx шаблоны. 316 - 317 - 318 -)))|[[https:~~/~~/redmine.goodt.me/issues/101604>>url:https://redmine.goodt.me/issues/101604]]((( 319 -API (Интеграционная платформа). Загрузка оргструктуры. Часть 3 320 -))) 321 -|Реализация методов загрузки и обработки шаблонов загрузки бизнес объектов, часть НМИ|((( 322 -Для таблиц: 323 - 324 -* legal_entity_status 325 -* legal_entity_type 326 -* division_status 327 -* division_group 328 -* position_type 329 -* position_status 330 -* position_rank 331 -* job_title 332 -* position_category 333 -* family_status 334 -* system_role 335 -* team_type 336 -* team_status 337 -* work_function_status 338 -* project_type 339 -* project_status 340 -* function_status 341 -* assignment_type 342 -* assignment_status 343 -* assignment_category 344 -* job_title_cluster 345 -* cost_center 346 -* position_importance 347 -* location_group 348 -* project_team_status 349 -* substitution_type 350 -* citizenship 351 - 352 -Выполнено: 353 - 354 -* Обновлена структура хранения данных в БД 355 -* Исправлена представления 356 -* Реализована обработка и вставка в целевую систему шаблонов 357 -* Подготовлены пустые xlsx шаблоны 358 -* Подготовлены заполненные xlsx шаблоны 359 -))) 360 - 361 -= ONB0 Общие требования = 362 - 363 -(% class="table-bordered" %) 364 -|=((( 365 -**Тема** 366 -)))|=((( 367 -**Описание** 368 -)))|=(% colspan="1" %)((( 369 -Задача RM 370 -))) 371 -|(% colspan="1" %)((( 372 -Редактирование раздела "Полезные материалы" через административную панель 373 -)))|(% colspan="1" %)((( 374 -У Администратора Системы появилась возможность редактировать состав раздела "Полезные материалы" процесса "Адаптация" через административную панель. Теперь состав раздела можно сконфигурировать: задать заголовок, описание и ссылку на материал из внешнего ресурса. 375 -)))|(% colspan="1" %)((( 376 -[[https:~~/~~/redmine.goodt.me/issues/106869>>url:https://redmine.goodt.me/issues/106869]] 377 -))) 378 -|((( 379 -Редактирование плана адаптации 380 -)))|((( 381 -В рамках развития процесса "Адаптации" добавлена возможность через административную панель формировать состав задач и подзадач плана адаптации работников. 382 -)))|((( 383 -[[https:~~/~~/redmine.goodt.me/issues/106949>>url:https://redmine.goodt.me/issues/106949]] 384 -))) 385 -|Настройка фоновой программы|Реализована новая фоновая программа, которая формирует индивидуальный план адаптации нового работника исходя из настройки плана адаптации. Кроме этого, назначение опросов выведены в отдельный фоновый процесс, который при необходимости отключается.|[[https:~~/~~/redmine.goodt.me/issues/106949>>url:https://redmine.goodt.me/issues/106949]] 386 - 387 -= PLT0 Общие требования = 388 - 389 -(% class="table-bordered" %) 390 -|=((( 391 -**Тема** 392 -)))|=((( 393 -**Описание** 394 -)))|=(% colspan="1" %)((( 395 -Задача RM 396 -))) 397 -|(% colspan="1" %)Переход на RT-Core|(% colspan="1" %)Переход на rt-core, включение TS2 в rt-core|(% colspan="1" %)[[https:~~/~~/redmine.goodt.me/issues/103594>>url:https://redmine.goodt.me/issues/103594]] 398 -|(% colspan="1" %)Фоновая программа обработки переводов и тасков|(% colspan="1" %)Новый функционал фоновой программы позволяет обрабатывать переводы работника и "переводить" на его новое назначение его исторические таски основных процессов|(% colspan="1" %)[[https:~~/~~/redmine.goodt.me/issues/106128>>url:https://redmine.goodt.me/issues/106128]] 399 - 400 -= PLT2 Оргструктура = 401 - 402 -(% class="table-bordered" %) 403 -|=((( 404 -**Тема** 405 -)))|=((( 406 -**Описание** 407 -)))|=(% colspan="1" %)((( 408 -Задача RM 409 -))) 410 -|(% colspan="1" %)((( 411 -Новая структура для раздела "Образование" профиля работника 412 -)))|(% colspan="1" %)((( 413 -В модель данных модуля добавлена новая структура для хранения данных образования работника 414 -)))|(% colspan="1" %)((( 415 -[[https:~~/~~/redmine.goodt.me/issues/110997>>url:https://redmine.goodt.me/issues/110997]] 416 -))) 417 -|(% colspan="1" %)Органиграмма 2.0|(% colspan="1" %)Обновление и изменение функционала визуализации Органиграммы|(% colspan="1" %)((( 418 -[[https:~~/~~/redmine.goodt.me/issues/93958>>url:https://redmine.goodt.me/issues/93958]] 419 - 420 -[[https:~~/~~/redmine.goodt.me/issues/101978>>url:https://redmine.goodt.me/issues/101978]] 421 -))) 422 - 423 -= Разворачивание системы = 424 - 425 -(% class="table-bordered" %) 426 -|**Сервис**|**Описание**|**Значения переменных**|**Примечания** 427 -|rtl-core|Изменение или добавление|RTL_ROOT_URL: https:~/~/root_url| 428 -|rtl-job|Изменение или добавление|((( 429 -RTL_BACKEND_TASKSETTING_URL: [[__https:~~/~~/root_url/rtl-api/rt-core/old__>>url:https://root_url/rtl-api/rt-core/old]] 430 - 431 -RTL_BACKEND_RTCORE_URL: [[__https:~~/~~/root_url/rtl-api/rt-core__>>url:https://root_url/rtl-api/rt-core]] 432 -)))| 433 -|hr-competence|Изменение или удаление| |Удален frontend сервис 434 -|my-attestation|Изменение или удаление| |Удален frontend сервис 435 -|vkph-admin|Изменение или добавление| |Добавлен frontend сервис