Загальні вимоги до програмного продукту

Програмний продукт розробляється як система автоматизації електронних аукціонів, що:

  • Підтримує публікацію оголошення, реєстрацію учасників, подачу ставок, проведення торгів та визначення переможця.

  • Забезпечує інтеграцію ЦБД Prozorro.Sale із зовнішніми Майданчиками.

  • Використовує MongoDB у кластері AWS для зберігання даних.

  • Реалізує безпечний обмін даними та логування всіх подій у системі.

  • Працює на AWS з використанням S3 для зберігання файлів та Fargate для серверної логіки.

Функціональні та нефункціональні вимоги

Функціональні вимоги

Опис Функціональних вимог присутній в ТЗ до конкретного продукту

Нефункціональні вимоги

Нефункціональні вимоги

Використання програмного забезпечення

  • Використання вільно розповсюджуваного програмного забезпечення.

  • Рівень відкритості програмного забезпечення має бути сумісним з ліцензією Apache 2.0.

  • Незалежність рішення від пропрієтарних сервісів, включаючи сервіси хостинг-провайдерів.

Життєвий цикл технологій

  • Використовувані технології повинні мати невизначений або щонайменше річний залишковий життєвий цикл на момент прийняття рішення.

Архітектурні вимоги

  • Використання контейнеризації (та оркестрації контейнерів) для всіх оточень.

  • Виключення компонентів, чия втрата може спричинити значні втрати даних або функціональності.

  • Механізми синхронізації даних та паралельної обробки повинні гарантувати відсутність конфліктів.

  • Наявність механізмів повторних спроб або використання проміжних черг між компонентами.

  • Орієнтація на асинхронну комунікацію між компонентами.

  • Можливість "гарячого" додавання інстансів будь-яких компонентів.

Тестування та продуктивність

  • Покриття коду юніт-тестами має бути ≥85%.

  • Автоматизоване тестування повинно перевіряти всі критичні бізнес-процеси.

  • Розробка універсального пакету автотестів для перевірки взаємодії клієнта (майданчика) з API.

  • Проведення навантажувального тестування з профайлінгом конфігурації відповідно до очікуваного навантаження.

Гнучкість налаштувань

  • Управління змінними бізнес-логіки через конфігурацію без зміни коду.

  • Збереження текстів інтерфейсу в конфігураційних файлах.

  • Можливість відновлення даних з бекапів (ціла база, окрема процедура, окремі дії).

Автоматизація розгортання

  • Автоматизована збірка контейнерів.

  • Автоматизований деплоймент на різні оточення.

Управління доступом та безпека

  • Максимальне розділення доступу для окремих клієнтів (майданчиків).

  • Логування всіх дій адміністратора, що впливають на бізнес-логіку.

  • Адміністратор не повинен мати доступу до ставок до початку аукціону.

  • Керування доступом майданчика через мережеві обмеження (білий список IP) та ключі доступу.

  • Швидке внесення змін у доступи майданчиків.

  • Заборона доступу до внутрішніх компонентів через мережеві обмеження та механізми авторизації.

  • Єдиний шлюз для доступу до інфраструктури.

  • API повинні надавати лише ті можливості, які передбачені документацією.

  • Використання лише безпечних (шифрованих) з’єднань.

  • Управління доступом на основі рольової моделі.

Логування

  • Логування всіх змін станів процедур.

  • Логування дій майданчиків (бізнес-дані, API виклики).

  • Логування дій користувачів модуля аукціону, включаючи помилки фронтенду.

  • Можливість відстеження пов’язаних дій у межах однієї логічної транзакції (trackID).

  • Логування роботи оркестратора, контейнерів, ОС та інфраструктурних сервісів.

  • Автоматична ротація технічних логів.

Інтерфейс та UX

  • Коректне відображення у популярних браузерах (Chrome, Firefox, Safari, Edge, IE).

  • Дизайн повинен бути адаптивним до різних екранів і пристроїв.

  • Повідомлення про помилки мають бути зрозумілими та містити рекомендації щодо їх усунення.

Вимоги до видів забезпечення

Вимоги до програмного забезпечення

  • мати клієнт-серверну архітектуру, а саме обмін інформацією між сервером застосувань та клієнтською частиною системи та іншими зовнішніми системами повинен реалізовуватись із застосуванням технології веб-сервісів;
  • пошук інформації повинен бути через розподілення по індексам, що знаходяться в іншій системі, що підтримує кирилецю (українську мову) та латиницю (англійську мову);
  • фреймворк, який використовується для серверної частини порталу, повинен бути визначений розробниками як LTS (Long-term-support);
  • серверне програмне забезпечення повинно працювати під управлінням операційних систем з відкритим вихідним кодом та безкоштовними ліцензіями, які визначені розробниками як LTS (Long-term-support);
  • мати свій відкритий репозиторій з використанням контролю версій Git;
  • база даних має включати модуль резервування та бекапування Системи з можливістю автоматичного запуску та перенесення даних на сервер резервних копій;
  • обов'язкове використання Open Source технологій;
  • мати відкриті джерела документації.

Вимоги до методичного забезпечення

У ході виконання робіт необхідно надати пропозиції щодо змін в нормативні акти (при необхідності), в нормативно-технічну документацію відповідно до прийнятих технічних та організаційних рішень.

Вимоги до захисту інформації

Посилання


  • No labels