linksplatform / linksplatform/InfiniteDepthTreeWebUIPrototype

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

Ouverte
#14 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
HTML
Étoiles
0
Forks
0
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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

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

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

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

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

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner la visualisation du prototype référencée et l’issue #13, puisque ce travail doit suivre la conversion du package React. Délimitez ensuite le repository séparé ou le package React autour du tree chat décrit, de la synchronisation WebRTC, de la persistance dans localStorage, du comportement de saisie et du flux d’insertion des messages ; le travail est terminé lorsque ces exigences fonctionnent ensemble.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, react
Domaine
distributed-systems, frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.