linksplatform / linksplatform/InfiniteDepthTreeWebUIPrototype
Реализовать древовидный анонимный P2P чат на react, синхронизирующийся в режиме реального времени по WebRTC, хранящий данные в localStorage
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
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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