Реализовать древовидный анонимный P2P чат на react, синхронизирующийся в режиме реального времени по WebRTC, хранящий данные в localStorage
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- javascript, react
- Domain
- distributed-systems, frontend
Research direction
Start by reviewing the referenced prototype visualization and issue #13, since this work is intended to follow the React package conversion. Then scope the separate repository or React package around the described tree chat, WebRTC synchronization, localStorage persistence, input behavior, and message insertion flow; it is done when those requirements work together.
Written by the indexing model from the issue text.
Description
Этот чат должен использовать этот прототип визуализации дерева.
Командная строка будет превращена в строку вводу сообщений и будет размещения снизу.
Логотип предлагаю убрать полностью (для простоты), в будущем его можно будет обратно добавить в виде фонового изображения.
Механизм работы чата:
- Изначально, если все клиенты подключились к странице с чатом в первый раз, там всего лишь одно сообщение - "начало".
- Пользователь выбирает сообщение, оно помечается оранжевым цветом.
- Далее он начинает вводить сообщение (если при этом текстовое поле не в фокусе, оно автоматически фокусируется при нажатии любой из буквы/цифры без CTRL и ALT).
- После того как ввод сообщения окончен, пользователь нажимает Enter и сообщение тут же появляется в качестве вложенного в то сообщение, которое было выделено в самом конце находящихся там сообщений.
- Новое сообщение тут же выделяется после добавление и страница осуществляет перемещение к нему.
- При этом уведомление об изменениях отправляется всем клиентам подключенным по WebRTC.
Хранение данных:
- У сообщений в качестве идентификаторов используется время их создания, чтобы можно было определять их порядок относительно друг друга.
- Сообщения хранятся в виде пар значений время создания сообщения родителя - JSON объект, содержащий текст сообщения и массив временных меток сообщений-детей.
- Изначально удаление и обновление сообщений не предусмотрено, только добавление.
Реализацию этого чата желательно делать после того как прототип веб-интерфейса будет превращён в соответствующие React-пакеты (https://github.com/linksplatform/InfiniteDepthTreeWebUIPrototype/issues/13).
Реализация должна размещаться в отдельном для этого репозитории, и возможно быть доступна в виде React пакета.
- Dominant language
- HTML
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from linksplatform/InfiniteDepthTreeWebUIPrototype
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in linksplatform/InfiniteDepthTreeWebUIPrototype
Similar issues
-
bug examples invalid iris
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
ai_reviewed
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
ydb-platform/ydb#53838 · 3 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
NovaSky-AI/SkyRL#2263 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
johanhaleby/occurrent#1106 ·
-
ShuffleManagerRegistry.register recursion guard is inverted, permits GlutenShuffleManager subclasses Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100