conversejs / community-plugins

3rd party, community contributed plugins for Converse.js
Other
14 stars 10 forks source link

Idea: collaborative text editor #1

Open poVoq opened 6 years ago

poVoq commented 6 years ago

There is actually an experimental XEP for collaborative XML editing through a MUC, see: https://xmpp.org/extensions/xep-0284.html

Quite a bit ago there was an implementation for it, but it never really took off: https://hg.linkmauve.fr/eldonilo/barbecue

Alternatively this framework seems to be a bit more extensive and also has an XMPP Muc connector: https://github.com/y-js/yjs

Might be a cool plugin for ConverseJS.

deleolajide commented 6 years ago

Might be a cool plugin for ConverseJS.

Indeed it would :-)

I would be more interested in y-js as it supports more types (map, array,xml, text and richtext) beyond xep-0284. I also think it would much practical to implement a Y-js Converse connector that shared the existing Strophe XMPP connection instead of instantiating a fresh new connection with the generic y-js MUC connector.

deleolajide commented 6 years ago

This got me going on an outstanding action to expose the collaborative features I added to the Pade version of Jitsi-Meet available to Converse as well. For more details, see https://github.com/igniterealtime/Pade/issues/72. The Converse plugin is not generic enough to be added to this repo.

One of the collaborative applications is a rich text editor using Quill and WOOT. If I get some free time soon, I will try using Y-JS instead of WOOT

deleolajide commented 6 years ago

As discussed here, the starting point should be a Y-js Converse connector that uses the Strophe xmpp connection object accessible from a Converse plugin.

This will allow any of the existing Y-js example apps to be included in a plugin as a starting point before we tackle a usable collaborative text editor based on Quill and a collaborative diagram editor based on draw.io.

deleolajide commented 6 years ago

I now have working implementation of collaborative document editing using ONLYOFFICE. I created a plugin client side in Converse and a plugin server-side in Openfire. For more details, see https://github.com/igniterealtime/Pade/issues/84.

image

poVoq commented 6 years ago

Doesn't OnlyOffice already include collaborative editing itself? What would be the benefit of this exactly?

deleolajide commented 6 years ago

What would be the benefit of this exactly?

Exactly, no point re-inventing the wheel. All I needed to do was to extract the chat and tie OnlyOffice userids to XMPP JIDs. Converse Plugins were created to do this type of custom integration.

My regulated enterprise users archive all chat for archiving. My version of Converse offers via a plugin full text search on all chats and group chats. That does not exclude internal document collaboration chats.

poVoq commented 5 years ago

Another option would be to add "widgets" to Inverse similar to how Riot.im does it, which allow embedding of iframes and such services like Etherpad and Google Sheets etc.

deleolajide commented 4 years ago

Finally put together an XMPP based collaborative text editor with audio conferencing based on the defunct WebODF project work. If there is any interest, I will make a converse plugin version.

https://github.com/inspired-futures/akowe

image

poVoq commented 4 years ago

That's awesome. Too bad the webodf library isn't in active development anylonger, but this might revive it. I am definitely interested in a conversejs compatible version.

deleolajide commented 4 years ago

I am definitely interested in a conversejs compatible version.

Excellent!! I will add it to my todo list. I just need to replace lib-jitsi-meet with converse.js. They both use strophe, so it should be straight forward to do.

I have decided to invest time in understanding ODF like XMPP, so I might step up to fix outstanding issues with WebODF. Hopefully as you said, others might join in. I think it is worth doing.

poVoq commented 4 years ago

If you get the experimental ods Spreadsheet part working better, then I am sure there will be more interest, as other than Ethercalc (which is more or less abandoned also) there isn't a lightweight collaborative spreadsheet editor.

Edit: this might be a better interface: https://github.com/myliang/x-spreadsheet

And a lot of people seem to be interested in an open source Airtable alternative.

deleolajide commented 4 years ago

Edit: this might be a better interface: https://github.com/myliang/x-spreadsheet

Thanks for the link :-)