Collaborative editing

44 views
Skip to first unread message

Stian Håklev

unread,
Mar 14, 2019, 5:57:37 AM3/14/19
to iodide-dev
Hi,

this looks fantastically interesting. I'm working on a platform for collaborative learning in classrooms (with dashboards, multiple activity types, data flow, etc), where we're trying to integrate different tools. We have thought about Jupyter Notebook, but it looks like this would be much easier to integrate flexibly. 

Here's an example of how we embed a simulation from the WISE project in Berkeley, able to live-stream temperature readings across the iFrame to a spreadsheet or graph tool. We also do experiments in classes of 300 students, where students input their own data (number of coffees drunk last 24 hours, shoe size etc), and let the students collaboratively explore this data. 

In all of these contexts, being able to connect a live data source to a Iodide sheet (perhaps pre-configured) would be amazing. Being able to track what students are doing and have some dashboards for teachers would also be very interesting.

It was mentioned briefly in the intro doc that "Google Docs-like collaborative editing" would be coming in the future. Are anyone currently working on this, or has there been any thoughts about how this would work? All of our activity types support collaborative editing, and are all based on ShareDB, which has served us extremely well and is very flexible - I think it would be a perfect match. I recently gave a tech talk about how we use ShareDB: https://www.youtube.com/watch?v=gN37rJRmISQ.

If people are interested, I could begin thinking about how we could implement collaborative editing in Iodide using ShareDB. I actually think it would be very easy - the simple case of just coordinating all the text in the Markdown editor should be trivial - there might be other things, like ensuring that my preview is automatically re-rendered if my text gets updated because of your edit etc (and there is probably some discussion about functionality, whether it should be completely in sync, or just the text changing, but I choose which cells to execute etc), but nothing unsolvable.

Let me know if this is interesting, and if anyone else are interested in joining this effort/discussing use cases etc.

Stian
Postdoc researcher EPFL, Switzerland

William Lachance

unread,
Mar 15, 2019, 10:07:36 AM3/15/19
to Stian Håklev, iodide-dev
Hi Stian! Nice to hear from you.

We're still discussing internally when and how to do collaborative editing. We actually only recently landed an implementation which saves the document automatically for a single user, which still has a few rough edges that I'm currently in the process of shaving off (e.g. https://github.com/iodide-project/iodide/pull/1595). I think for the very short term (= next couple months) our priority will likely be on improving the functionality of the application for a single user in various ways.

I think my main concern with using sharedb would be how it would integrate with the rest of our server-side infrastucture, which is built using Django. I guess we could run an instance of it alongside the rest of our server enviroment as a sort of microservice, but I would still want to make sure that authentication/identity management provided by the main site still worked as expected, and that it was still possible to interact with the main site via a REST-type API (which we need for a few internal projects).

I admit that I'm a little skeptical that this would be easy, but am always happy to be proven wrong. :) If you want to build a prototype and submit a pull request, I'd be happy to take a look. Probably the best place to start would be to bring up your own instance of an iodide server with these instructions:


If you want to chat with us on real-time, we're on gitter: https://gitter.im/iodide-project/iodide

Will

--
You received this message because you are subscribed to the Google Groups "iodide-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to iodide-dev+...@googlegroups.com.
To post to this group, send email to iodid...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/iodide-dev/9110472d-77ab-40c0-8468-95a7dcd1ba19%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages