тз.md 8.8 KB

Техническое задание на разработку программного продукта «Интерактивная викторина: Защита персональных данных»

  1. Цель и назначение разработки 1.1. Цель Разработать десктопное приложение для тестирования знаний в области защиты персональных данных в формате интерактивной викторины.

1.2. Назначение Проверка знаний сотрудников организаций, студентов, слушателей курсов по теме 152-ФЗ, GDPR, уровней защищённости, угроз и т.д.

Использование в учебных целях, на лекциях, тренингах, внутренних экзаменах.

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

  1. Требования к функциональности 2.1. Основные функции № Функция Описание 1 Стартовый экран Приветствие, правила, кнопка начала викторины 2 Перемешивание вопросов Случайный порядок вопросов при каждом запуске 3 Отображение вопроса Текст вопроса + до 4 вариантов ответов 4 Выбор ответа Через GUI (кнопки) или клавиши 1-4 5 Проверка ответа По кнопке «Проверить» или клавише Enter 6 Обратная связь Модальное окно с результатом (правильно/неправильно) + пояснение 7 Подсчёт результатов В конце викторины — количество правильных ответов и % 8 Повторное прохождение Возможность начать заново без перезапуска программы 9 Выход По кнопке или Esc с подтверждением 2.2. Работа с изображениями При наличии изображения у вопроса — отображать его (PNG, JPG, JPEG, BMP, GIF, ICO, TIFF).

Поддержка Pillow для масштабирования, обработки прозрачности и анимированных GIF.

Автоматическое определение доминирующего цвета изображения для фона вопроса.

Если изображение отсутствует — показывать уведомление об ошибке.

2.3. Интерфейс и управление Адаптивная цветовая схема: цвет фона меняется под изображение или используется предустановленный.

Автоматический выбор чёрного или белого цвета текста для читаемости.

Управление с клавиатуры:

1-4 — выбор варианта ответа

Enter — проверка ответа / продолжение

Esc — выход

Эффекты наведения на кнопки и радиокнопки.

  1. Структура данных 3.1. Формат вопроса Каждый вопрос представляет собой словарь с полями:

Поле Тип Описание id int Уникальный идентификатор question str Текст вопроса options list[str] Список вариантов ответов (4 шт.) correct int Индекс правильного ответа (0-3) explanation str Пояснение после ответа image str Имя файла изображения (опционально) bg_color str|None Ручной цвет фона (hex, опционально) 3.2. БД вопросов Встроенный список из 50 вопросов по теме защиты ПД.

Вопросы охватывают: 152-ФЗ, категории данных, уровни защищённости, угрозы, ответственность, GDPR и др.

  1. Требования к графическому интерфейсу 4.1. Окна и экраны Экран Элементы Стартовый Заголовок, правила, кнопка «Начать» Вопрос Текст вопроса, изображение (если есть), 4 радиокнопки, прогресс, подсказки, кнопки «Выход» и «Проверить» Обратная связь Модальное окно с результатом, пояснением, кнопкой продолжения Результаты Количество правильных ответов, %, оценка, кнопки повтора и выхода 4.2. Размеры и расположение Основное окно: 1000x700, не изменяется.

Модальное окно: 500x350.

Изображения масштабируются до 350x350 с сохранением пропорций.

Варианты ответов — вертикальный список с переносом текста.

  1. Технические требования

5.1. Стек технологий Компонент Технология Язык Python 3.8+ GUI Tkinter (встроенный) Работа с изображениями Pillow (опционально, но рекомендуется) Сборка (опционально) PyInstaller / cx_Freeze

5.2. Зависимости Стандартная библиотека Python (tkinter, random, os, pathlib, typing)

Pillow — не обязателен, но без него ограничена работа с изображениями (только .jpg через PhotoImage)

5.3. Структура файлов text quiz_app.py # Главный скрипт quiz_images/ # Папка с изображениями (создаётся вручную)

q1.jpg
q2.png
...

5.4. Обработка ошибок Отсутствие Pillow → предупреждение, работа с ограничениями.

Отсутствие изображения → уведомление в интерфейсе.

Некорректный файл изображения → сообщение об ошибке.

  1. Критерии приёмки № Критерий

1 Приложение запускается без ошибок на Python 3.8+

2 Все 50 вопросов отображаются корректно

3 Выбор ответа работает через мышь и клавиши 1-4

4 Проверка ответа показывает правильный/неправильный результат с пояснением

5 По окончании викторины показывается итоговый счёт и процент

6 Можно пройти викторину заново без перезапуска

7 Выход из программы — через Esc или кнопку с подтверждением

8 Изображения (если есть) отображаются и не ломают интерфейс

9 Цвет фона адаптируется под изображение или используется палитра по умолчанию

10 Код структурирован, есть классы ImageManager и QuizApp, комментарии на русском/английском

  1. Возможные доработки (не входит в текущий объём) Добавление базы данных SQLite для хранения результатов пользователей.

Режим обучения с повторением ошибочных вопросов.

Экспорт результатов в PDF/CSV.

Поддержка темной/светлой темы без привязки к изображению.

Таймер на вопрос.

Звуковое сопровождение (правильно/неправильно).

Многопользовательский режим (соревнование).

  1. Требования к документации Исходный код должен содержать комментарии к ключевым методам.

В начале файла — краткое описание программы и инструкция по запуску.

При отсутствии Pillow — вывод понятного сообщения с инструкцией по установке.