Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Idea: collaborative text editor #1

Open
poVoq opened this issue Oct 4, 2018 · 12 comments
Open

Idea: collaborative text editor #1

poVoq opened this issue Oct 4, 2018 · 12 comments
Labels
enhancement New feature or request

Comments

@poVoq
Copy link

poVoq commented Oct 4, 2018

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
Copy link
Member

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
Copy link
Member

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 igniterealtime/pade#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
Copy link
Member

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
Copy link
Member

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 igniterealtime/pade#84.

image

@poVoq
Copy link
Author

poVoq commented Oct 29, 2018

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

@deleolajide
Copy link
Member

deleolajide commented Oct 29, 2018

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
Copy link
Author

poVoq commented Feb 26, 2019

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
Copy link
Member

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
Copy link
Author

poVoq commented Jan 30, 2020

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
Copy link
Member

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
Copy link
Author

poVoq commented Jan 30, 2020

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
Copy link
Member

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

Thanks for the link :-)

@Echolon Echolon added the enhancement New feature or request label Apr 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants