Совместный редактор документов в реальном времени на CRDT
119 просмотров 0 откликов#42409
Бюджет€800за проект
ФорматРазовый проектбез предоплаты
ОплатаНаличные, Банковский перевод
Приём заявокСрок приёма заявок истёкдо 19.09.2026
Откликов0в среднем по разделу: 0,1
Просмотров1196 за 14 дней
Описание проекта
Нам требуется разработчик, который создаст встроенный в наше веб-приложение редактор документов с совместной работой в реальном времени. Задача звучит просто, но сделать её качественно непросто: два, пять или двадцать человек должны открывать один и тот же документ одновременно и править его параллельно, ни разу не затирая правки друг друга. Когда один человек печатает фразу, все остальные должны видеть её появление буква за буквой за доли секунды, а позиции курсоров каждого участника обязаны оставаться корректными даже тогда, когда текст вокруг них непрерывно меняется. Мы хотим живые курсоры и выделения, окрашенные по пользователям, панель присутствия с перечнем тех, кто сейчас в документе, и слой встроенных комментариев, где можно выделить фрагмент, оставить заметку и закрыть ветку обсуждения.
Внутри слияние должно быть бесконфликтным, поэтому мы ждём движок на CRDT или операционных преобразованиях, а не наивную схему «побеждает последний». Одновременные правки с разных клиентов обязаны сходиться к абсолютно одинаковому итоговому состоянию на каждой машине независимо от порядка доставки пакетов и задержек сети. Для нас важна работа офлайн: пользователь, потерявший связь, должен продолжать редактировать локально, а его изменения — автоматически согласовываться при восстановлении соединения, без диалога слияния и без потери набранных символов. Нужна и полная история версий с именованными снимками, наглядной лентой правок и возможностью восстановить или сравнить любую прежнюю ревизию.
Транспорт следует построить на WebSocket с автоматическим переподключением и обработкой обратного давления, а вся система обязана масштабироваться на множество документов и множество одновременных редакторов так, чтобы сервер не превращался в узкое место. Просим отнестись к этому как к продакшн-работе: нам важны чистые API, тесты вокруг логики слияния и понятная документация, чтобы наша команда могла сопровождать проект дальше.
— Живые курсоры, выделения и индикатор присутствия по каждому пользователю — Движок слияния CRDT/OT с гарантией сходимости — Редактирование офлайн с автоматическим согласованием при переподключении — Встроенные комментарии, ветки обсуждений и полная история версий