Этап 4: Работа с объектами доски
Цель этапа
Section titled “Цель этапа”Реализовать основной функционал интерактивной доски, включая создание, редактирование, перемещение, удаление и синхронизацию графических и текстовых объектов между несколькими пользователями.
Задания
Section titled “Задания”1. Реализация объектов доски
Section titled “1. Реализация объектов доски”Необходимо реализовать поддержку следующих типов объектов:
- текст;
- изображение;
- линия;
- прямоугольник;
- треугольник;
- круг.
Для каждого объекта необходимо предусмотреть:
- уникальный идентификатор;
- тип объекта;
- координаты размещения на доске;
- параметры отображения;
- возможность дальнейшего редактирования.
2. Добавление объектов
Section titled “2. Добавление объектов”- Реализовать панель инструментов для выбора типа создаваемого объекта.
- Обеспечить возможность добавления на доску:
- текстового блока;
- изображения;
- линии;
- прямоугольника;
- треугольника;
- круга.
- После добавления объект должен отображаться на доске у всех подключенных пользователей.
3. Редактирование свойств объектов
Section titled “3. Редактирование свойств объектов”Для объектов необходимо реализовать возможность изменения свойств.
Для графических объектов (линия, прямоугольник, треугольник, круг):
- цвет;
- толщина линии;
- размер;
- координаты;
- при наличии — цвет заливки.
Для текстового объекта:
- текстовое содержимое;
- размер шрифта;
- цвет текста;
- координаты;
- размеры блока.
Для изображения:
- координаты;
- размеры;
- путь к изображению или загруженный ресурс.
4. Перемещение объектов
Section titled “4. Перемещение объектов”- Реализовать механизм перемещения объектов по доске.
- Обеспечить обновление координат объекта после перемещения.
- Синхронизировать новое положение объекта между всеми подключенными пользователями.
5. Удаление объектов
Section titled “5. Удаление объектов”- Реализовать удаление выбранного объекта.
- После удаления объект должен исчезать у всех пользователей, работающих с данной доской.
6. Синхронизация объектов в реальном времени
Section titled “6. Синхронизация объектов в реальном времени”- Через WebSocket реализовать передачу событий:
create-object;update-object;move-object;delete-object.
- Обеспечить обновление состояния доски у всех подключенных клиентов в реальном времени.
- Проверить корректную работу синхронизации при одновременном подключении нескольких пользователей.
Требования
Section titled “Требования”- реализовано не менее 6 типов объектов:
- текст;
- изображение;
- линия;
- прямоугольник;
- треугольник;
- круг;
- для объектов должна поддерживаться возможность изменения основных свойств;
- реализовано перемещение объектов;
- реализовано удаление объектов;
- синхронизация между клиентами работает корректно.
Результат
Section titled “Результат”По итогам выполнения этапа в системе должна быть реализована интерактивная доска, на которой пользователи могут:
- добавлять различные типы объектов;
- изменять свойства объектов;
- перемещать объекты;
- удалять объекты;
- видеть изменения в реальном времени у всех участников.
Контроль
Section titled “Контроль”- демонстрация работы всех типов объектов;
- проверка редактирования свойств объектов;
- проверка синхронизации между несколькими клиентами;
- проверка корректности удаления и перемещения объектов.