Словник
- Електронні торгові майданчики (ЕТМ, майданчики) — приватні онлайн-платформи, інтегровані з Центральною базою даних Prozorro.Sale. Через майданчики користувачі створюють лоти, подають документи, вносять гарантійні внески, роблять біди, беруть участь в аукціонах і отримують підтримку. Майданчики є комерційними партнерами Prozorro.Sale та посередниками між користувачем і ЦБД.
Бізнес дані
Бізнес мета
Метою розробки - створення окремого сервісу з можливістю взаємодію через АРІ що повертає альтернативну покращену версію лоту на основі інформації, внесеної у систему організатором.
Обґрунтування
Через те, що інформація про лот створюється організатором, якість опису лоту, його відображення на порталі та на сайтах майданчиків, залежить від спроможності організатора такий опис створити. Як наслідок, можуть використовуватись неякісні зображення (особливо в якості титульного), може використовуватись довга назва або неструктурований опис.
При цьому зараз лоти з довгою назвою мають значимо кращий показник успішності.
Розробка нового рішення дозволить:
- спростити для організатора процес публікації інформації про лот
- спростити відображення інформації про лот в інтерфейсах порталу та майданчиків
- можливо підвищити конверсію перегляд → участь за рахунок більш зрозумілого та структурованого опису
Техічні вимоги
Технічні вимоги до введення тексту
На формі майданчика:
- надати користувачу поле description у форматі <textarea>;
- дозволити як ручне введення з переносами рядків (Enter), так і вставку тексту з Word.
У БД:
- зберігати текст як звичайний текст (plain text) без змін і додаткового форматування
На фронті при відображенні:
- використовувати CSS-властивість white-space: pre-wrap для збереження переносів рядків;
- або виконувати заміну символів нового рядка \n на <br> при рендері
Загальна архітектура системи
Створюється окремий 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.
- Контроль максимальної довжини назви та опису (з урахуванням встановленних обмежень ЦБД).
- Використання альтернативного тексту в інтерфейсах
- У шаблоні "Детальний опис" за замовчуванням відображається альтернативний текст (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, ЕТМ |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | Користувач має прозорий доступ до обох версій опису лоту |
Інші вимоги |
Use Case 4. Повторна генерація альтернативного опису при редагуванні чернетки
Назва | Повторна генерація альтернативного опису при редагуванні чернетки |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ, Сервіс покращення опису лоту |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки |
|
Результат (Постумови) | Альтернативний опис завжди відповідає актуальній версії оригінального тексту |
Інші вимоги |
Use Case 5. Завантаження та обробка фотографій лоту (2-й етап)
Назва | Завантаження та обробка фотографій лоту (2-й етап) |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ, Сервіс покращення опису лоту (модуль обробки зображень). |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | До лоту прикріплені візуально покращені та правильно орієнтовані фотографії |
Інші вимоги |
Use Case 6. Масова генерація альтернативних описів для існуючих лотів (в разі batch-обробки)
Назва | Масова генерація альтернативних описів для існуючих лотів (batch-обробка) |
Обґрунтування | |
| Актори | Основний: Адміністратор Prozorro.Sale або відповідальний аналітик. Системні: Внутрішній сервіс/скрипт, Сервіс покращення опису лоту |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | Багато існуючих лотів отримують покращені описи без ручного втручання організаторів |
Інші вимоги |
Use Case 7. Обробка помилок та недоступності сервісу покращення опису лоту (fallback-сценарії)
Назва | Обробка помилок та недоступності сервісу покращення опису лоту (fallback-сценарії) |
Обґрунтування | |
| Актори | Основний: Організатор / Балансоутримувач. Системні: ЕТМ, Сервіс покращення опису лоту |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | Життєвий цикл лоту не блокується недоступністю сервісу покращення |
Інші вимоги |
Use Case 8. Моніторинг та адміністрування сервісу покращення опису лоту
Назва | Моніторинг та адміністрування сервісу покращення опису лоту |
Обґрунтування | |
| Актори | Основний: Адміністратор / DevOps / Підтримка. Системні: Сервіс покращення опису лоту, системи моніторингу |
Передумови |
|
Основний хід подій (дій) |
|
Альтернативні шляхи, помилки, крайові випадки | |
Результат (Постумови) | Сервіс покращення опису лоту підтримується у стабільному та контрольованому стані |
Інші вимоги |