Home - gogafefe/StAlGoLM GitHub Wiki
StAlGoLM
Клиент-серверное приложение на C++/Qt: сервер с аккаунтами, ролями (user / moderator / admin) и практическими заданиями по математике и алгоритмам со статистикой правильных ответов.
Команда
- Голь Фёдор (251-952) — task2 (метод Ньютона, вариант №6), оконный клиент, модульные тесты Task2, стратегия тестирования и тест-кейсы
- Корнеев Алексей — базовый сервер: аккаунты, роли, статистика, task1 (сравнение методов интегрирования)
- Степан — task3 (метод половинного деления, вариант №3), Docker, Doxygen, UseCase и диаграммы классов, тесты Task3
Технологии
- C++11, Qt 6 (Core, Network, Sql)
- SQLite — хранение пользователей и статистики (
QSqlDatabase, драйверQSQLITE) - Протокол поверх сырого TCP (порт
33333), без готовых HTTP/JSON-библиотек — команды в виде текстовых строк - Docker / docker compose — контейнеризация сервера (инструкция:
documentation/Docker.md) - Doxygen — документация по коду (
documentation/Doxygen.md, готовый HTML вdocumentation/doxygen/html/index.html)
Структура репозитория
| Файл | Назначение |
|---|---|
main.cpp |
Точка входа, запуск сервера |
mytcpserver.h/.cpp |
Приём подключений, разбор входящих сообщений, диспетчеризация команд |
server_functions.h/.cpp |
Обработка каждой команды (processCommand, cmd_*) |
databasemanager.h/.cpp |
Работа с SQLite — пользователи, роли, статистика |
task1.h/.cpp … task4.h/.cpp |
Генерация заданий — один файл на один вариант |
tests/ |
Модульные тесты Task2 и Task3 (QtTest) |
client/ |
Оконный клиент (Qt Widgets): кнопки вместо PuTTY |
documentation/ |
Отчётные материалы: Docker, Doxygen, UseCase, диаграммы классов |
StAlGoLM.pro |
Сборочный файл Qt (qmake) |
Полезные страницы
- Протокол команд сервера — что можно отправить серверу и что он ответит
- Архитектура — как файлы связаны друг с другом и куда идёт запрос
- Task2 — метод Ньютона — задание Фёдора отдельно
- Task3 — метод половинного деления — задание Степана
- Структура Git — ветки, схема и история репозитория
- Клиент — оконный клиент (кнопки вместо PuTTY)
- Известные проблемы — найденные и исправленные баги
Быстрый старт
qmake StAlGoLM.pro
make
./StAlGoLM
Проверить вручную — PuTTY, тип соединения Raw, хост localhost, порт 33333.
Диаграммы и тестирование
- Диаграммы-классов — новые диаграммы клиента и сервера (draw.io), описание архитектуры.
- UseCase — диаграмма вариантов использования, акторы и команды.
- Юнит-тесты — QtTest для Task2 и Task3, исходники и команды запуска.
- Тест-кейсы — ручные сценарии, ожидаемые результаты и таблицы проекта.