Документация - Amrax232/sadykovnurgeldiev GitHub Wiki

Project Title

Описание

Краткое описание проекта и его назначения.

Структура Git

  • Основная ветка: main (или master) - содержит стабильную версию.
  • Ветки разработки: develop - для разработки новых функций, feature/* - для отдельных фич, bugfix/* - для исправления ошибок.
  • Ветки релиза: release/* - для подготовки к релизу.

Технологии

  • Язык: C++17
  • Фреймворк: Qt 6
  • База данных: SQLite
  • Инструменты: Docker, Doxygen, QTest

Архитектура

Диаграмма классов (Server)

Диаграмма классов сервера

Диаграмма классов (Client)

Диаграмма классов клиента

Use Case Diagram

Use Case Diagram

Серверная часть

Задача Статус
Обработка запросов (parse + заглушки) Выполнено
БД в синглтоне Выполнено
Поддержка нескольких клиентов Выполнено
Подключение БД Выполнено
Авторизация и регистрация Выполнено
Заглушки функционала Выполнено

Клиентская часть

Задача Статус
Оконный интерфейс Выполнено
Клиент в синглтоне Выполнено
Готовый клиент Выполнено

Функциональность

  • Авторизация и регистрация пользователей
  • Получение заданий
  • Проверка решений заданий
  • Просмотр статистики (индивидуальной и общей)
  • (Добавь другие ключевые функции)

Тестирование

  • Стратегия: (Опиши кратко стратегию тестирования. Например, unit-тесты, интеграционные тесты, ручное тестирование)
  • Тест-план и чек-лист: Ссылка на файл Test-plan.xls
  • Test Cases и дефекты: Ссылка на файл Test-Cases.xls
  • Unit Tests: (Опиши, какие модули протестированы unit-тестами)

Алгоритмы и методы

  • Triple DES (3DES): Используется для шифрования конфиденциальных данных, таких как пароли или ключи API, перед их сохранением в базе данных или передачей по сети. Реализация Triple DES в Qt может быть выполнена с использованием класса QCryptographicHash в сочетании с ручной обработкой блоков данных для соответствия стандарту 3DES. (Укажи, какие именно данные ты шифруешь)

  • MD5: Применяется для хеширования паролей пользователей при регистрации и аутентификации. Вместо хранения паролей в открытом виде, в базе данных сохраняется их MD5-хеш. Это повышает безопасность, так как даже при утечке базы данных злоумышленники не смогут сразу получить доступ к паролям. Для генерации MD5-хеша используется класс QCryptographicHash в Qt:

    QString password = ui->passwordLineEdit->text();
    QByteArray passwordHash = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5);
    QString passwordHashString = passwordHash.toHex();
  • Метод секущих: Используется для приближенного решения уравнений при расчете оптимальных параметров в алгоритмах машинного обучения, используемых для автоматической генерации или оценки сложности заданий. Метод секущих реализован в функции secantMethod(double initialGuess, double tolerance) и применяется для поиска корня производной функции ошибки. (если ты где-то его используешь, укажи где именно).

  • Проверка цикла графа (гамильтонова цикла): Реализован алгоритм для проверки, содержит ли заданный граф гамильтонов цикл. Алгоритм использует поиск в глубину (DFS) с возвратом (backtracking) для перебора всех возможных путей в графе. Функция hamiltonianCycleCheck(QVector<QVector<int>>& graph, QVector<int>& path, QVector<bool>& visited, int startNode) проверяет, является ли текущий путь гамильтоновым циклом.

Docker

(Инструкции по сборке и запуску приложения с помощью Docker. Пример Dockerfile)

Doxygen

(Укажите, где находится сгенерированная документация Doxygen, и как ее просмотреть.)

Инструкция по сборке

(Опишите шаги по сборке проекта, например:

  1. Установите Qt Creator
  2. Откройте файл .pro
  3. Выполните сборку проекта )

Авторы

Cадыков Амрах Элхан оглы Нургелдиев Овез

Лицензия

(Укажи лицензию, например, MIT)

⚠️ **GitHub.com Fallback** ⚠️