# Лабораторная работа №3

## Описание
Были использованы следующие сущности:
1. Учитель. Поля: email и ФИО
2. Задание. Поля: название, предмет и id учителя

Сущности связаны связью один ко многим. У одного учителя может быть несколько заданий, у задания только один учитель.

Для каждой сущности был написан отдельный сервис.

Код каждого сервиса представляет собой полноценное API для работы с задачами и учителями. 
Они включают основные операции CRUD (создание, чтение, обновление, удаление). Дополнительно можно вывести задачу с полной информацией об учителе.

В качестве хранилища данных использовалась оперативная память приложения.

Запросы к сервисам проксирует шлюз на основе Nginx. Для этого перед запуском nginx был описан конфигурационный файл nginx.conf, 
в котором описан прослушиваемый порт и название сервера (в блоке server), маршруты до микросервисов и параметры проксирования (в блоке location).

Конфигурация Nginx направлена на организацию и упрощение работы с микросервисами.

Тестирование производится через расширение RestMan.

## Как запустить это?

Для запуска данной конфигурации Docker Compose выполните следующие шаги:

1. Открыть терминал и перейти в директорию, где находится docker-compose.yml.
2. Выполнить команду
```
docker compose up --build
```
3. Дождаться, пока Docker Compose запустит все контейнеры.


## Видео
Работоспособность представлена на [видео](https://vk.com/video204968285_456240927).