Техническое задание на разработку программного продукта «Интерактивная викторина: Защита персональных данных»
1.2. Назначение Проверка знаний сотрудников организаций, студентов, слушателей курсов по теме 152-ФЗ, GDPR, уровней защищённости, угроз и т.д.
Использование в учебных целях, на лекциях, тренингах, внутренних экзаменах.
Возможность самостоятельного обучения за счёт пояснений к каждому вопросу.
Поддержка Pillow для масштабирования, обработки прозрачности и анимированных GIF.
Автоматическое определение доминирующего цвета изображения для фона вопроса.
Если изображение отсутствует — показывать уведомление об ошибке.
2.3. Интерфейс и управление Адаптивная цветовая схема: цвет фона меняется под изображение или используется предустановленный.
Автоматический выбор чёрного или белого цвета текста для читаемости.
Управление с клавиатуры:
1-4 — выбор варианта ответа
Enter — проверка ответа / продолжение
Esc — выход
Эффекты наведения на кнопки и радиокнопки.
Поле Тип Описание 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 и др.
Модальное окно: 500x350.
Изображения масштабируются до 350x350 с сохранением пропорций.
Варианты ответов — вертикальный список с переносом текста.
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 Приложение запускается без ошибок на Python 3.8+
2 Все 50 вопросов отображаются корректно
3 Выбор ответа работает через мышь и клавиши 1-4
4 Проверка ответа показывает правильный/неправильный результат с пояснением
5 По окончании викторины показывается итоговый счёт и процент
6 Можно пройти викторину заново без перезапуска
7 Выход из программы — через Esc или кнопку с подтверждением
8 Изображения (если есть) отображаются и не ломают интерфейс
9 Цвет фона адаптируется под изображение или используется палитра по умолчанию
10 Код структурирован, есть классы ImageManager и QuizApp, комментарии на русском/английском
Режим обучения с повторением ошибочных вопросов.
Экспорт результатов в PDF/CSV.
Поддержка темной/светлой темы без привязки к изображению.
Таймер на вопрос.
Звуковое сопровождение (правильно/неправильно).
Многопользовательский режим (соревнование).
В начале файла — краткое описание программы и инструкция по запуску.
При отсутствии Pillow — вывод понятного сообщения с инструкцией по установке.