80 lines
2.4 KiB
Markdown
80 lines
2.4 KiB
Markdown
# Лабораторные работы — Деев
|
||
|
||
## Лабораторная работа 1 — Django REST API
|
||
|
||
**Расположение:** `lab-1/`
|
||
|
||
Django-приложение с REST API для викторины. PostgreSQL, без Docker.
|
||
|
||
**Запуск:**
|
||
```bash
|
||
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`
|
||
|
||
**Запуск (любой из вариантов):**
|
||
```bash
|
||
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/` |
|
||
|
||
**Сборка:**
|
||
```bash
|
||
cd lab-3
|
||
cmake -B build
|
||
cmake --build build
|
||
```
|
||
|
||
**Запуск бэкенда перед использованием:**
|
||
```bash
|
||
cd lab-2/web_lite
|
||
docker compose up
|
||
```
|
||
|
||
Приложение подключается к `http://localhost:80`.
|