linksplatform / linksplatform/InfiniteDepthTreeWebUIPrototype
Реализовать древовидный анонимный P2P чат на react, синхронизирующийся в режиме реального времени по WebRTC, хранящий данные в localStorage
まだ誰も着手していません。
- 主要言語
- HTML
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Этот чат должен использовать этот прототип визуализации дерева.
Командная строка будет превращена в строку вводу сообщений и будет размещения снизу.
Логотип предлагаю убрать полностью (для простоты), в будущем его можно будет обратно добавить в виде фонового изображения.
Механизм работы чата:
* Изначально, если все клиенты подключились к странице с чатом в первый раз, там всего лишь одно сообщение - "начало".
* Пользователь выбирает сообщение, оно помечается оранжевым цветом.
* Далее он начинает вводить сообщение (если при этом текстовое поле не в фокусе, оно автоматически фокусируется при нажатии любой из буквы/цифры без CTRL и ALT).
* После того как ввод сообщения окончен, пользователь нажимает Enter и сообщение тут же появляется в качестве вложенного в то сообщение, которое было выделено в самом конце находящихся там сообщений.
* Новое сообщение тут же выделяется после добавление и страница осуществляет перемещение к нему.
* При этом уведомление об изменениях отправляется всем клиентам подключенным по WebRTC.
Хранение данных:
* У сообщений в качестве идентификаторов используется время их создания, чтобы можно было определять их порядок относительно друг друга.
* Сообщения хранятся в виде пар значений _время создания сообщения родителя_ - _JSON объект, содержащий текст сообщения и массив временных меток сообщений-детей_.
* Изначально удаление и обновление сообщений не предусмотрено, только добавление.
Реализацию этого чата желательно делать после того как прототип веб-интерфейса будет превращён в соответствующие React-пакеты (https://github.com/linksplatform/InfiniteDepthTreeWebUIPrototype/issues/13).
Реализация должна размещаться в отдельном для этого репозитории, и возможно быть доступна в виде React пакета.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、参照されているプロトタイプの可視化と issue #13 を確認してください。この作業は React パッケージの変換に続いて行うことを意図しています。次に、説明されている tree chat、WebRTC 同期、localStorage の永続化、入力動作、メッセージ挿入フローを中心に、別の repository または React パッケージのスコープを定めてください。これらの要件が連携して動作すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, react
- 領域
- distributed-systems, frontend
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100