Опис робочих процесів (бізнес-процесів)

Узагальнений бізнес-процес, яким можна описати основний функціонал

В залежності від "Напряму роботи" і "Типу аукціону" логіка може відрізнятися, що обовʼязково буде зазначено в ТЗ до розробки процедури Напряму.

Загальний опис

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

Основні бізнес-процеси

Публікація оголошення (процедури) 

  1. Організатор аукціону заходить в особистий кабінет на обраному Майданчику
  2. Заповнює форму реєстрації та проходить автентифікацію
  3. Обирає доступний із переліку напрям роботи (оренда, продаж тощо)
  4. Заповнює всі обовʼязкові поля і документи обраної процедури (напряму)
  5. Публікує оголошення (процедуру)
  6. Система зберігає дані в MongoDB та публікує їх у загальнодоступному каталозі.
  7. Учасники можуть переглядати перелік активних аукціонів та подавати заявки.

Реєстрація учасника

  1. Учасник заходить на платформу через обраний Майданчик.

  2. Заповнює форму реєстрації та проходить автентифікацію

  3. Отримує підтвердження реєстрації та доступ до особистого кабінету.

Реєстрація на аукціон

  1. Учасник подає заявку на участь у торгах.

  2. Підтверджує згоду з умовами.

  3. Вносить гарантійний і реєстраційний внесок

  4. Отримує унікальний токен доступу до торгів.

Проведення аукціону

  1. У визначений час система автоматично розпочинає торги.

  2. Учасники подають ставки, які фіксуються в MongoDB із часовими мітками.

  3. Після закінчення часу торгів система визначає переможця за найвищою ставкою.

  4. Генерується протокол аукціону та надається організатору на підпис

Завершення торгів і укладання договору

  1. Переможець отримує повідомлення про виграш.

  2. Організатор підтверджує результати аукціону.

  3. У разі відмови переможця, система автоматично пропонує лот наступному учаснику

  4. Дані про результати торгів логуються в систему для аудиту

Логування бізнес-процесів

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

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

Основна вимога: Обране рішення має бути контейнеризовано та запускатися в куб кластері

Операційна система

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1Debian GNU/Linux 12 (Bookworm)12.0 чи новішаОС для Linux-серверів, контейнеризаціяOpen-source, GPL

Бази даних

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1MongoDB15 чи новішаNoSQL база данихOpen-source
2Redis7 чи новішаКешування даних, in-memory сховищеOpen-source, BSD License
3PostgreSQL14 чи новішаРеляційна база данихOpen-source
4Elasticsearch7.17.3 чи новішаВикористовується для searchOpen-source

Сервери додатків

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1Nginx1.24 чи новішаВеб-сервер, балансування навантаженняOpen-source, BSD License
2Gunicorn20.1 чи новішаWSGI-сервер для Python-додатківOpen-source, MIT License
3

aiohttp

3.9.3 чи новішаАсинхронний HTTP-сервер та клієнт для Python, підтримка REST API, WebSocket Open-source, Apache 2.0 License

Мікросервіси та API

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1REST API
Запити та маніпуляція данимиOpen-source

Контейнеризація та оркестрація

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1Docker27 і вищеКонтейнеризація додатківOpen-source, Apache 2.0
2Kubernetes1.32 і вищеОркестрація контейнерівOpen-source, Apache 2.0

Системи моніторингу та логування

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1Prometheus2.47Моніторинг метрикOpen-source, Apache 2.0
2Grafana10Візуалізація метрик та логівOpen-source, AGPLv3
3Opensearch2.19 і вищеПошук та аналіз логівOpen-source

Інструменти безпеки

НайменуванняВерсіяФункціональні можливостіЛіцензійні умови використання
1OpenSSL3.0Шифрування та захист данихOpen-source, Apache 2.0
2Сipher-vpn2 і вище
Open-source

Вимоги до інтеграції з іншими системами та програмними продуктами (інтероперабельність).

Загальні вимоги

Інтеграція з базами даних та сховищами

Взаємодія з державними та сторонніми сервісами

Логування та моніторинг інтеграцій

Вимоги до продуктивності інтеграції

Вимоги до безпеки програмного забезпечення (захист від несанкціонованого доступу, захист даних)

Вимоги до масштабованості та надійності програмного забезпечення

Вимоги до тестування програмного забезпечення (види тестування, критерії приймання)

Види тестування, яке може застосовуватися

Вид тестуванняОпис
1Модульне тестуванняПеревірка роботи окремих модулів системи
2Інтеграційне тестуванняПеревірка взаємодії між модулями та сервісами
3Функціональне тестуванняПеревірка відповідності функцій заявленим вимогам
4Навантажувальне тестуванняОцінка продуктивності під високим навантаженням
5Стрес-тестуванняПеревірка роботи системи в екстремальних умовах
6Тестування безпекиВиявлення вразливостей, захист від атак
7UX/UI тестуванняОцінка зручності використання інтерфейсу
8Регресійне тестуванняПеревірка працездатності після внесення змін

Критерії приймання програмного забезпечення

Командою тестування складаються:

Програмне забезпечення вважається прийнятим, якщо:

  1. Усі критичні баги (blocking, critical) виправлені

  2. Кількість дефектів рівня high не перевищує 2 на 1000 тест-кейсів

  3. Продуктивність відповідає встановленим вимогам

  4. Інтеграційні API відповідають документації та коректно взаємодіють з зовнішніми системами.

  5. Успішно виконані приймальні випробування, що включають:

Вимоги до технічних засобів

Загальні вимоги

Перелік необхідних хмарних сервісів та їх параметри

СервісПризначенняОсновні характеристики
1AWS S3 Compatible StorageСховище для коду та статичних файлівВерсія сховища: S3 Compatible Storage, шифрування AES-256, увімкнене версіонування
2AWS EKSВиконання контейнерних сервісівАвто-скейлінг увімкнено
3AWS VPCВіртуальна мережа для ресурсів AWSІзольоване мережеве середовище, підтримка підмереж, ACL, маршрутизація, NAT
4AWS EC2Обчислювальні ресурси (віртуальні машини)Різні типи інстансів (t, m, c), гнучке масштабування, інтеграція з Auto Scaling
5AWS Route53 DNS-сервісГлобальна система DNS, підтримка health checks, routing policies, інтеграція з AWS ресурсами
6AWS NLBБалансування навантаження на рівні TCP/UDPВисока пропускна здатність, підтримка static IP, low latency, інтеграція з EC2 та EKS
9AWS CloudWatchЛогування та моніторингЗбір логів з AWS-сервісів, кастомні метрики, алерти


Опис вимог до інтерфейсів та їх дизайну

Загальні вимоги до інтерфейсів

Деталізовані вимоги до нітерфейсів та дизайну описуються в ТЗ продукту, який реалізовуємо.

Опис вимог до архітектури зберігання та обміну даними

Використання MongoDB як основної бази даних для зберігання інформації про аукціони, учасників, ставки та інші дані.

Обґрунтування: гнучкість схеми, масштабованість та продуктивність при роботі з великими обсягами даних та неструктурованою інформацією.

MongoDB (кластер у AWS) використовується для зберігання всіх структурованих і напівструктурованих даних, включаючи:

Масштабованість

Оптимізація продуктивності

Формати обміну даними

Протоколи обміну даними

Інтеграція з іншими системами