1
0
Fork 0
mirror of https://github.com/EDeev/quizlab.git synced 2026-10-07 20:49:34 +03:00
Лабораторные по архитектуре ПС (Московский Политех): REST API викторин на DRF → Docker (nginx, Caddy, свой реестр) → Qt-клиент с Singleton и Adapter
Find a file
Egor Deev a20db9e9fd Django: секретный ключ, DEBUG и ALLOWED_HOSTS — из переменных окружения
SECRET_KEY, DEBUG = True и ALLOWED_HOSTS = ['*'] были прописаны в settings.py всех трёх
копий проекта. Теперь DJANGO_SECRET_KEY, DJANGO_DEBUG, DJANGO_ALLOWED_HOSTS; значения по
умолчанию оставлены для локального запуска лабораторной. Пароль БД по умолчанию в lab-1
приведён к тому же 'password', что и в lab-2.
2026-10-05 18:33:22 +00:00
lab-1 Django: секретный ключ, DEBUG и ALLOWED_HOSTS — из переменных окружения 2026-10-05 18:33:22 +00:00
lab-2 Django: секретный ключ, DEBUG и ALLOWED_HOSTS — из переменных окружения 2026-10-05 18:33:22 +00: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

Паттерны:

  • Singleton — ApiClient существует в единственном экземпляре (Meyers' Singleton)
  • Adapter — QuizJsonAdapter конвертирует QJsonObject → Quiz

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.