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

Patch-based Realtime Collaboration #60

Merged
merged 4 commits into from
Nov 24, 2023

Conversation

loreanvictor
Copy link
Contributor

@loreanvictor loreanvictor commented Nov 13, 2023

This PR provides support for patch-based realtime collaboration, i.e. syncing clients using patches (with the JSONPatch standard format) instead of syncing state whole-sale.

This PR is a work-in-progress, I am mainly opening it as a way to better test the corresponding PR on Apollon, though it will also host the final updates to Apollon standalone for utilising patch-related features provided by said PR.

@loreanvictor
Copy link
Contributor Author

loreanvictor commented Nov 19, 2023

This is basically ready for review, pending this PR on Apollon, and a corresponding version update to Apollon. Since that PR is not yet marked as ready for review, I won't mark this as ready for review either, though it can be tested and shouldn't require further changes except for the aforementioned Apollon version update.

To test, simply follow instructions outlined in this PR.:

  • Clone the branch and install dependencies
    npm i
  • Build the app and create diagrams folder:
    npm run build:local
    mkdir diagrams
  • Start the server:
    npm start
  • Open localhost:8888, create a diagram
  • Get a collaboration link by clicking on Share button on top menu, then Collaborate, then copy the browser URL
  • Open the URL in another browser (private browsing or different browser)
  • You should see each user's selections
  • You should see each user's changes
  • You should see a user's selection disappearing when their client is closed

re: @matthiaslehnertum if you could take a look at this it'd be nice!

@loreanvictor loreanvictor marked this pull request as ready for review November 20, 2023 08:08
@matthiaslehnertum matthiaslehnertum self-requested a review November 24, 2023 11:49
@matthiaslehnertum matthiaslehnertum merged commit a22768b into main Nov 24, 2023
1 check passed
@matthiaslehnertum matthiaslehnertum deleted the feature/patch-based-realtime-collaboration branch November 24, 2023 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants