I am Abhishek Ranjan on GitHub as iamabhi222, A sophomore from BIT Sindri (Dhanbad, India). I have been using Joplin from quite a long and always admire Joplin for its clean UI, I am trying to get my hands on some issues and fortunately I got my first PR merged with Joplin yesterday, though that was only a documentation fix but at least I got a start
As a part of GSOC, I would love to work on Real-time collaboration on a note and so trying to get myself familiarize with the codebase and also working on CRDT and WebRTC, also looking forward to @PackElend and @roman_r_m for some quick start guide.
The sharing feature for Joplin Server is already partially implemented actually - sharing by link is already done (will release in 1.8) and sharing a notebook I have some ideas on how to do it, so we don't need that kind of work at this stage.
but going a step beyond that:
.
..it could almost be a separate app wouldn't it? The app would just displays a text editor with the content shared using a web socket, that's all independent of Joplin, then at regular interval it would update the note via the Joplin Server API.
but maybe:
some of the apps would required to be implemented in the server.
In case of Convergence: The Real-Time Collaboration Engine it looks like it would be quite trivial as it comes with it own convergencelabs/convergence-server: The Convergence Server (github.com). It only needs to be able to block syncs against the server as long as there is collaboration ongoing.
In addition, real-time collaboration is properly not that much required if you can sync quickly against the same target.
Working in bug-fix is mandatory to tell us if you are really able to code or do just copy&paste, in addition in gives an idea how well you understand Joplin's codebase.