В залежності від "Напряму роботи" і "Типу аукціону" логіка може відрізнятися, що обовʼязково буде зазначено в ТЗ до розробки процедури Напряму.
Програмний продукт забезпечує автоматизацію електронних аукціонів, включаючи публікацію оголошення (процедури), реєстрацію учасників, подачу пропозицій, проведення торгів (аукціону), визначення переможця та підписання протоколу і договору.
Публікація оголошення (процедури)
Учасник заходить на платформу через обраний Майданчик.
Заповнює форму реєстрації та проходить автентифікацію
Отримує підтвердження реєстрації та доступ до особистого кабінету.
Учасник подає заявку на участь у торгах.
Підтверджує згоду з умовами.
Вносить гарантійний і реєстраційний внесок
Отримує унікальний токен доступу до торгів.
У визначений час система автоматично розпочинає торги.
Учасники подають ставки, які фіксуються в MongoDB із часовими мітками.
Після закінчення часу торгів система визначає переможця за найвищою ставкою.
Генерується протокол аукціону та надається організатору на підпис
Переможець отримує повідомлення про виграш.
Організатор підтверджує результати аукціону.
У разі відмови переможця, система автоматично пропонує лот наступному учаснику
Дані про результати торгів логуються в систему для аудиту
Всі ключові дії (реєстрація, ставки, підписання договору) записуються у MongoDB + AWS CloudWatch Logs.
Доступ до логів мають лише адміністратори через захищений API.
НИЖЧЕ НАВЕДЕНІ ПРИКЛАДИ! ЇХ МОЖНА НЕ ДОТРИМУВАТИСЬ
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | Ubuntu Server | 22.04 LTS | ОС для Linux-серверів, контейнеризація | Open-source, GPL |
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | MongoDB | 15 | Реляційна база даних, підтримка ACID | Open-source |
2 | Redis | 7 | Кешування даних, in-memory сховище | Open-source, BSD License |
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | Nginx | 1.24 | Веб-сервер, балансування навантаження | Open-source, BSD License |
2 | Gunicorn | 20.1 | WSGI-сервер для Python-додатків | Open-source, MIT License |
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | GraphQL | 16 | Запити та маніпуляція даними | Open-source, MIT License |
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | Docker | 24 | Контейнеризація додатків | Open-source, Apache 2.0 |
2 | Kubernetes | 1.29 | Оркестрація контейнерів | Open-source, Apache 2.0 |
3 | AWS Fargate | - | Безсерверне керування контейнерами | Комерційна ліцензія AWS |
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | Prometheus | 2.47 | Моніторинг метрик | Open-source, Apache 2.0 |
2 | Grafana | 10 | Візуалізація метрик та логів | Open-source, AGPLv3 |
3 | Elasticsearch | 8.11 | Пошук та аналіз логів | Open-source, Elastic License |
№ | Найменування | Версія | Функціональні можливості | Ліцензійні умови використання |
---|---|---|---|---|
1 | OpenSSL | 3.0 | Шифрування та захист даних | Open-source, Apache 2.0 |
2 | Vault by HashiCorp | 1.15 | Керування секретами | Open-source, MPL 2.0 |
Програмний продукт повинен забезпечувати можливість інтеграції з зовнішніми системами через стандартизований протокол REST API
Усі інтеграційні запити та відповіді повинні передаватися у форматах JSON або XML відповідно до специфікацій суміжних систем.
Підтримка роботи з чергами повідомлень (RabbitMQ, Apache Kafka) для асинхронної обробки запитів.
Використання OAuth 2.0 / OpenID Connect для автентифікації та авторизації між сервісами.
Реалізація механізмів збереження збоїв інтеграції (retry logic, circuit breaker).
Підтримка реплікації та обміну даними з MongoDB.
Інтеграція з Elasticsearch для розширеного пошуку та аналітики.
Використання Amazon S3 для зберігання файлів.
Підключення до Prozorro.Sale через офіційний API для отримання даних про обʼєкти ЦБД.
Інтеграція з державними реєстрами через API
Взаємодія з сервісами електронного документообігу
Використання Prometheus та Grafana для моніторингу API-запитів.
Збереження логів інтеграцій в Elasticsearch із подальшою аналітикою через Kibana.
Налаштування алертів у разі збою інтеграційних процесів (наприклад, через Zabbix, Grafana Alerts, AWS CloudWatch).
№ | Вид тестування | Опис |
---|---|---|
1 | Модульне тестування | Перевірка роботи окремих модулів системи |
2 | Інтеграційне тестування | Перевірка взаємодії між модулями та сервісами |
3 | Функціональне тестування | Перевірка відповідності функцій заявленим вимогам |
4 | Навантажувальне тестування | Оцінка продуктивності під високим навантаженням |
5 | Стрес-тестування | Перевірка роботи системи в екстремальних умовах |
6 | Тестування безпеки | Виявлення вразливостей, захист від атак |
7 | UX/UI тестування | Оцінка зручності використання інтерфейсу |
8 | Регресійне тестування | Перевірка працездатності після внесення змін |
Командою тестування складаються:
Програмне забезпечення вважається прийнятим, якщо:
Усі критичні баги (blocking, critical) виправлені
Кількість дефектів рівня high не перевищує 2 на 1000 тест-кейсів
Продуктивність відповідає встановленим вимогам
Інтеграційні API відповідають документації та коректно взаємодіють з зовнішніми системами.
Успішно виконані приймальні випробування, що включають:
Функціональне тестування (тестування API)
Навантажувальне тестування
Безпекове тестування
UX/UI тестування (за наявності розробки фронту)
Програмний продукт повинен бути розгорнутий у хмарному середовищі AWS з використанням безсерверної архітектури.
Всі компоненти повинні бути керованими AWS-сервісами з автоматичним масштабуванням.
№ | Сервіс | Призначення | Основні характеристики |
---|---|---|---|
1 | Amazon S3 | Сховище для коду та статичних файлів | Версія сховища: S3 Standard, шифрування AES-256, увімкнене версіонування |
2 | AWS Lambda | Виконання серверного коду | Мова: Python 3.9, Максимальний тайм-аут: 15 сек., RAM: 512MB-2GB |
3 | AWS API Gateway | Обробка HTTP-запитів | REST API, авторизація через OAuth2, обмеження RPS: 1000 |
4 | AWS Fargate (ECS) | Виконання контейнерних сервісів | CPU: 2 vCPU, RAM: 4GB, Авто-скейлінг увімкнено |
5 | Amazon DocumentDB (або MongoDB на EC2) | NoSQL база даних | Версія: DocumentDB 5.0 (сумісна з MongoDB 5.0), реплікація Multi-AZ |
6 | Amazon CloudFront | CDN для прискорення доступу | Кешування S3-об'єктів, TTL: 24 години |
7 | AWS CloudWatch | Логування та моніторинг | Збір метрик Lambda, API Gateway, RDS, алерти на помилки |
Деталізовані вимоги до нітерфейсів та дизайну описуються в ТЗ продукту, який реалізовуємо.
Використання MongoDB як основної бази даних для зберігання інформації про аукціони, учасників, ставки та інші дані.
Обґрунтування: гнучкість схеми, масштабованість та продуктивність при роботі з великими обсягами даних та неструктурованою інформацією.
MongoDB (кластер у AWS) використовується для зберігання всіх структурованих і напівструктурованих даних, включаючи:
Дані користувачів
Логічні об’єкти системи (аукціони, заявки тощо)
Журнали транзакцій
Amazon S3 використовується для зберігання:
Статичних файлів (зображення, документи, архіви)
Резервних копій
Логів роботи системи
Масштабованість
Оптимізація продуктивності
Формати обміну даними
Протоколи обміну даними
Інтеграція з іншими системами