linksplatform / linksplatform/InfiniteDepthTreeWebUIPrototype

Реализовать древовидный анонимный P2P чат на react, синхронизирующийся в режиме реального времени по WebRTC, хранящий данные в localStorage

Offen
#14 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
HTML
Sterne
0
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Этот чат должен использовать этот прототип визуализации дерева.
Командная строка будет превращена в строку вводу сообщений и будет размещения снизу.
Логотип предлагаю убрать полностью (для простоты), в будущем его можно будет обратно добавить в виде фонового изображения.

Механизм работы чата:

  • Изначально, если все клиенты подключились к странице с чатом в первый раз, там всего лишь одно сообщение - "начало".
  • Пользователь выбирает сообщение, оно помечается оранжевым цветом.
  • Далее он начинает вводить сообщение (если при этом текстовое поле не в фокусе, оно автоматически фокусируется при нажатии любой из буквы/цифры без CTRL и ALT).
  • После того как ввод сообщения окончен, пользователь нажимает Enter и сообщение тут же появляется в качестве вложенного в то сообщение, которое было выделено в самом конце находящихся там сообщений.
  • Новое сообщение тут же выделяется после добавление и страница осуществляет перемещение к нему.
  • При этом уведомление об изменениях отправляется всем клиентам подключенным по WebRTC.

Хранение данных:

  • У сообщений в качестве идентификаторов используется время их создания, чтобы можно было определять их порядок относительно друг друга.
  • Сообщения хранятся в виде пар значений время создания сообщения родителя - JSON объект, содержащий текст сообщения и массив временных меток сообщений-детей.
  • Изначально удаление и обновление сообщений не предусмотрено, только добавление.

Реализацию этого чата желательно делать после того как прототип веб-интерфейса будет превращён в соответствующие React-пакеты (https://github.com/linksplatform/InfiniteDepthTreeWebUIPrototype/issues/13).
Реализация должна размещаться в отдельном для этого репозитории, и возможно быть доступна в виде React пакета.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Durchsicht der referenzierten Prototyp-Visualisierung und von Issue #13, da diese Arbeit der Konvertierung des React-Pakets folgen soll. Bestimme anschließend den Umfang des separaten Repositorys oder React-Pakets rund um den beschriebenen Tree-Chat, die WebRTC-Synchronisierung, die localStorage-Persistenz, das Eingabeverhalten und den Nachrichten-Einfügefluss; die Arbeit ist abgeschlossen, wenn diese Anforderungen zusammenspielen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, react
Bereich
distributed-systems, frontend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.