Документация - Amrax232/sadykovnurgeldiev GitHub Wiki
Проект представляет собой клиент-серверную систему "Тренажер по МЛТА" (математическая логика и теория алгоритмов), предназначенную для обучения и автоматизированной проверки решения задач.
-
Основная ветка:
main
(илиmaster
) - содержит стабильную версию. -
Ветки разработки:
develop
- для разработки новых функций,feature/*
- для отдельных фич,bugfix/*
- для исправления ошибок. -
Ветки релиза:
release/*
- для подготовки к релизу.
- Язык: C++17
- Фреймворк: Qt 6
- База данных: SQLite
- Инструменты: Docker, Doxygen, QTest
##Оконный интерфейс


Задача | Статус |
---|---|
Обработка запросов (parse + заглушки) | Выполнено |
БД в синглтоне | Выполнено |
Поддержка нескольких клиентов | Выполнено |
Подключение БД | Выполнено |
Авторизация и регистрация | Выполнено |
Заглушки функционала | Выполнено |
Задача | Статус |
---|---|
Оконный интерфейс | Выполнено |
Клиент в синглтоне | Выполнено |
Готовый клиент | Выполнено |
- Авторизация и регистрация пользователей
- Получение заданий
- Проверка решений заданий
- Просмотр статистики (индивидуальной и общей)
- (Добавь другие ключевые функции)
Назначение и функции:
Модуль Database обеспечивает централизованное управление подключением к SQLite базе данных. Реализован как синглтон, гарантируя единственный экземпляр подключения во всем приложении.
Назначение и функции:
Сетевой модуль отвечает за TCP-соединение между клиентом и сервером. Реализован как синглтон, обеспечивая единую точку сетевого взаимодействия.
-
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. Можете ознакомиться в папке docs в файле "Dockerfile.cpp"
Документация к проекту сгенерирована с помощью Doxygen и доступна по адресу:
- Установите Qt Creator
- Откройте файл .pro
- Выполните сборку проекта )
Cадыков Амрах Элхан оглы Нургелдиев Овез