Ключевая часть работы — синхронизация вживую. Хочется, чтобы у каждого на экране двигались подписанные курсоры коллег, а выделения и изменения прилетали сами, без перезагрузки вкладки. Отдельно важно поведение при конфликтах: если два человека одновременно правят один элемент, доска не должна разъезжаться. Нужен приличный набор инструментов рисования — свободное перо, ровные линии и стрелки, прямоугольники и овалы, текстовые поля и разноцветные стикеры, которые можно двигать и растягивать. Плюс плавные прокрутка и зум по большому полотну, группировка и блокировка объектов, отмена и повтор действий. Всё содержимое сохраняется на сервере: закрыл вкладку, вернулся — доска на месте. Также требуется выгрузка доски или выделенного фрагмента в форматы PNG, SVG и PDF.
Реализовать нужно как современное браузерное приложение без установки плагинов, удобное и на компьютере, и на планшете. Заранее расскажите, как планируете держать скорость при десятках элементов и нескольких активных участниках. Что ждём на выходе:
— Бесконечный холст с зумом: перо, фигуры, стрелки, текст и цветные стикеры
— Одновременное редактирование в реальном времени с подписанными курсорами и списком присутствующих
— Автосохранение досок и выгрузка в PNG, SVG и PDF
— Аккуратный код с комментариями, инструкция по запуску и передача проекта