No description
Find a file
2026-05-28 12:16:14 +03:00
lab-1 lab-1: add REST API endpoints 2026-04-21 16:10:00 +03:00
lab-2 lab-2: add Caddy-based configuration as extra task 2026-05-28 12:16:14 +03:00
lab-3 lab-2: add Caddy-based configuration as extra task 2026-05-28 12:16:14 +03:00
README.md lab-3: add Qt GUI client with Singleton and Adapter patterns 2026-05-21 13:56:31 +03:00

Лабораторные работы — Деев

Лабораторная работа 1 — Django REST API

Расположение: lab-1/

Django-приложение с REST API для викторины. PostgreSQL, без Docker.

Запуск:

pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Лабораторная работа 2 — Docker

Расположение: lab-2/

То же приложение, упакованное в Docker-контейнеры. Три варианта запуска:

Папка Описание
local/ Сборка образов из исходников, PostgreSQL в контейнере
web_lite/ Готовые образы с dcr.deev.su, PostgreSQL внешний
web_pg/ Готовые образы с dcr.deev.su, PostgreSQL в контейнере

Образы на registry:

  • dcr.deev.su/deevev/lab2-backend:1.0.0
  • dcr.deev.su/deevev/lab2-nginx:1.0.0

Запуск (любой из вариантов):

cd lab-2/local       # или web_lite / web_pg
docker compose up

Перед запуском web_lite и web_pg нужен файл .env — пример в lab-2/local/.env.


Лабораторная работа 3 — Qt GUI клиент

Расположение: lab-3/

Qt6-приложение на C++ — графический клиент к REST API из Лаб-1.
Демонстрирует паттерны проектирования Singleton и Adapter.

Стек: Qt 6, C++17, QNetworkAccessManager, CMake

Паттерны:

  • SingletonApiClient существует в единственном экземпляре (Meyers' Singleton)
  • AdapterQuizJsonAdapter конвертирует QJsonObjectQuiz

5 HTTP-методов:

Кнопка Метод Endpoint
Все тесты GET /api/quiz/
По ID GET /api/quiz/:id/
Создать POST /api/quiz/
Обновить PUT /api/quiz/:id/
Удалить DELETE /api/quiz/:id/

Сборка:

cd lab-3
cmake -B build
cmake --build build

Запуск бэкенда перед использованием:

cd lab-2/web_lite
docker compose up

Приложение подключается к http://localhost:80.