Словник
- Електронні торгові майданчики (ЕТМ - електронний торгівельний майданчик, майданчики) — приватні онлайн-платформи, інтегровані з Центральною базою даних Prozorro.Sale. Через майданчики користувачі створюють лоти, подають документи, вносять гарантійні внески, роблять біди, беруть участь в аукціонах і отримують підтримку. Майданчики є комерційними партнерами Prozorro.Sale та посередниками між користувачем і ЦБД.
Бізнес дані
Бізнес мета
Метою розробки - створення окремого сервісу з можливістю взаємодію через АРІ що повертає альтернативну покращену версію лоту на основі інформації, що внесена внесеної у систему організатором.
Обґрунтування
Через те, що інформація про лот створюється організатором, якість опису лоту, його відображення на порталі та на сайтах майданчиків, залежить від спроможності організатора такий опис створити. Як наслідок, можуть використовуватись неякісні зображення (особливо в якості титульного), може використовуватись довга назва або неструктурований опис.
При цьому зараз лоти з довгою назвою мають значимо кращий показник успішності.
...
- спростити для організатора процес публікації інформації про лот
- спростити відображення інформації про лот в інтерфейсах порталу та майданчиків
Покращення які необхідно зробити для подальшої корректної роботи
- можливо підвищити конверсію перегляд → участь за рахунок більш зрозумілого та структурованого опису
Техічні вимоги
Технічні вимоги до введення тексту
На формі майданчика:
- надати користувачу поле description у форматі <textarea>;
- дозволити як ручне введення з переносами рядків (Enter), так і вставку тексту
На формі — дати користувачу в полі description
<textarea>, щоб він міг: або надрукувати блок з Enter-ами;
або вставити з Word.
У БД:
- — зберігати це текст як звичайний текст (plain text) без змін .і додаткового форматування
На фронті
...
при відображенні:
- або контейнер з використовувати CSS-властивість white-space: pre-wrap для збереження переносів рядків;
- або заміна виконувати заміну символів нового рядка \n → на <br> .при рендері
...
Загальна
...
архітектура системи
Створюємо Створюється окремий сервіс-обробник тексту (middleware), який:
Отримує вхідний текст (через HTTP/API, вебхук, з форми тощо).
Проганяє його через набір правил (регекс, заміни, форматування, валідація).
Повертає відредагований текст як відповідь на запит з іншого сервісу (система ЕТМ).
Тобто всі інші системи не думають “як красиво оформити текст” — вони просто відправляють його в твій сервіс → отримують результат.
Правила:
middleware-сервіс — “Система покращення опису лоту”, який працює як незалежний компонент і може бути викликаний з різних майданчиків (ЕТМ) та інших внутрішніх сервісів.
Основні кроки роботи сервісу:
- Отримує вхідні дані (title, description, images та інші метадані) через HTTP/API.
- Проганяє їх через набір правил (регулярні вирази, форматування, валідація, ML-моделі).
- Формує альтернативні версії полів (titleAlt, descriptionAlt, imagesEnhanced).
- Повертає результат як відповідь на запит системи ЕТМ.
- При погодженні Організатором заміни оригінального тексту альтернативним заповнюється meta поля alternativeTitle = true та alternativeDescription = true в залежності яке поле погоджено поля набуваються значення false в разі не погодження Організатором викорисання
Основні компоненти:
- Вхідний API сервісу покращення опису лоту (REST/HTTP).
- Модуль обробки текстів (форматування, правила побудови title/description).
- (2-й етап) Модуль обробки зображень (покращення якості, вирівнювання горизонту тощо).
- Інтеграція з ЕТМ (синхронна або асинхронна модель взаємодії).
Правила обробки:
- Робота з полями title та description
- Формування структурованих описів із переносами рядків і логічними блоками.
- Збереження змісту критично важливих даних (кадастровий номер, площа, адреса тощо).
- Генерація альтернативних полів: titleAlt та descriptionAlt.
- Контроль максимальної довжини назви та опису (з урахуванням встановленних обмежень ЦБД).
- Використання альтернативного тексту в інтерфейсах
- У
- Фотографії покращуються кожен раз при завантаженні в систему - Другий етап розробки
- Перевертати фотографії в правильне розташування
- Покращувати якість фото
- Вирівнювати горизонт
- Робота з полями: title, description
- Тільки в шаблоні "Детальний опис" за замовчуванням відображається альтернативний текст (значення полів titleAlt та , descriptionAlt) якщо він є в процедурі/об'єкті та наявний елемент при активації якого можна перемкнутись на оригінальний текст (, якщо він існує, з можливістю перемикання на оригінальний (title, description).
- Для інших шаблонів використовується значення полів title та description).
- Для інших шаблонів протоколів завжди використовується значення полів title та description.
- Обробка фотографій (2-й етап розробки)
- Перевертати фотографії в правильне розташування (орієнтація).
- Покращувати якість фото (контраст, різкість, яскравість у межах допустимого).
- Вирівнювати горизонт (особливо для фото об’єктів нерухомості).
- Позначати зображення як оброблені (флаг enhanced = true) для уникнення повторної обробки.
Додаткові технічні аспекти:
- Інтеграція та безпека
- Аутентифікація майданчиків через API ключі / OAuth2 / mTLS.
- Обмеження доступу до сервісу (whitelist IP, rate limiting).
- Логування запитів та відповідей (без розкриття чутливих даних).
- Версіонування правил
- Введення версії ruleset (наприклад, "land_description:v1").
- Можливість A/B-тестування різних версій правил для різних майданчиків.
- Логування та аудит
- Збереження інформації про факт звернення до сервісу, результат, помилки.
- Можливість відтворити історію змін опису лоту.
UseCase
Use Case 1.
...
Збереження чернетки
...
з генерацією альтернативного опису лоту
...
Назва | Збереження чернетки процедури/реєстру/ІП | Обґрунтування | Користувачу необхідно зберегти чернетку процедури/реєстру/ІП перед публікацією в системіз генерацією альтернативного опису лоту |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ (майданчик), Сервіс покращення опису лоту | ||
Передумови |
| ||
Основний хід подій (дій) |
| ||
Альтернативні шляхи, помилки, крайові випадки |
| ||
Результат (Постумови) |
| ||
Інші вимоги |
Use Case 2. Публікація процедури з використанням альтернативного опису на порталі/майданчику
Назва | Публікація процедури з використанням альтернативного опису на порталі/майданчику |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ (майданчик), Портал Prozorro.Sale |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) |
|
Інші вимоги |
Use Case 3. Перегляд лоту з можливістю перемикання між оригінальним та альтернативним описом
Назва | Перегляд лоту з можливістю перемикання між оригінальним та альтернативним описом |
Обґрунтування | |
| Актори | Основний: Учасник, гість порталу, Організатор. Системні: Портал Prozorro.Sale, ЕТМ |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки |
|
Результат (Постумови) | Зребежена чернета має альтернативні значення title та description | Інші вимоги |
Use Case 2. Збреження чернетки аукціону
Результат (Постумови) | Користувач має прозорий доступ до обох версій опису лоту |
Інші вимоги |
Use Case 4. Повторна генерація альтернативного опису при редагуванні чернетки
Назва | Повторна генерація альтернативного опису при редагуванні чернетки |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ, Сервіс покращення опису лоту |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки |
|
Результат (Постумови) | Альтернативний опис завжди відповідає актуальній версії оригінального тексту |
Інші вимоги |
Use Case 5. Завантаження та обробка фотографій лоту (2-й етап)
Назва | Завантаження та обробка фотографій лоту (2-й етап) |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ, Сервіс покращення опису лоту (модуль обробки зображень). |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | До лоту прикріплені візуально покращені та правильно орієнтовані фотографії |
Інші вимоги |
Use Case 6. Масова генерація альтернативних описів для існуючих лотів (в разі batch-обробки)
Назва | Масова генерація альтернативних описів для існуючих лотів (batch-обробка) |
Обґрунтування | |
| Актори | Основний: Адміністратор Prozorro.Sale або відповідальний аналітик. Системні: Внутрішній сервіс/скрипт, Сервіс покращення опису лоту |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | Багато існуючих лотів отримують покращені описи без ручного втручання організаторів |
Інші вимоги |
Use Case 7. Обробка помилок та недоступності сервісу покращення опису лоту (fallback-сценарії)
Назва | Обробка помилок та недоступності сервісу покращення опису лоту (fallback-сценарії) |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ, Сервіс покращення опису лоту |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | Життєвий цикл лоту не блокується недоступністю сервісу покращення |
Інші вимоги |
Use Case 8. Моніторинг та адміністрування сервісу покращення опису лоту
Назва | Моніторинг та адміністрування сервісу покращення опису лоту |
Обґрунтування | |
| Актори | Основний: Адміністратор / DevOps / Підтримка. Системні: Сервіс покращення опису лоту, системи моніторингу |
Передумови |
|
Основний хід подій (дій) |
|
Назва | Збереження чернетки процедури/реєстру/ІП |
Обґрунтування | Користувачу необхідно зберегти чернетку процедури/реєстру/ІП перед публікацією в системі |
| Актори | Організатор/Балансоутримувач, |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови)Користувач деактивував | Сервіс покращення опису лоту підтримується у стабільному та контрольованому стані |
Інші вимогиСистема зберігає історію дій |