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

Realtime collaboration on persistent workspaces #200

Open
veggiesaurus opened this issue Sep 27, 2023 · 4 comments
Open

Realtime collaboration on persistent workspaces #200

veggiesaurus opened this issue Sep 27, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request question Further information is requested

Comments

@veggiesaurus
Copy link

Our current workspace implementation allows users to share workspaces in a limited manner. A single user owns the workspace and can update manually. Other users will see the updated workspace when reloading.

Tools such as google docs and Figma provide some really nice UX for users sharing and editing workspaces in realtime. Based on these tools, I propose a proof of concept collaboration feature that does the following:

  • Users can open a new "shared workspace", which generates a persistent workspace doc on the server
  • Other users can join the workspace by pasting a copied link
  • Opening a file is replicated across all workspace users
  • Regions are replicated across all users
  • Render configs are replicated across all users
  • Workspaces are persistent and automatically saved. Coming back to the same URL will automatically add you to the workspace and open the files in the workspace
  • UI is not persisted across workspace, as it is user-configurable (possibly we can choose to persist it per-user?)
  • Other users' cursors can be seen on the active image with a name
  • Clicking the user's avatar in the menu bar allows you to do the following:
    • Jump to their view (FOV and active image)
    • Follow their view (jump to their FOV and lock onto it)
    • Remove them from the workspace (only if owner)
  • Very simple comment log, or possibly a comment log for each annotation?

The following limitations should apply to the proof of concept:

  • Only built into SDP versions of carta (this makes sense)
  • Limited permissions functionality configurable:
  • Only owner can adjust workspace
  • Other users can adjust regions
  • Other users can adjust render config
  • Other users can load files (default off?)
  • We initially ignore the fact that some users might have different file accesses and simply show errors if users can't load files
@Jordatious
Copy link

This looks great! I think having an option to match/lock to another users' UI would be cool. I assume by this you mean their layout/widgets. For instance, if the owner focuses on a z-profile plot during a shared session, but a collaborator doesn't have that widget opened within their layout, they will have to then go and open that widget. Instead, matching/locking to another users' layout would mean they're always able to follow what another user is doing/showing.

I also think having only owners able to lock/unlock regions would be a cool feature. And perhaps there's similar with other functionality (e.g. opening/closing images).

@veggiesaurus
Copy link
Author

This looks great! I think having an option to match/lock to another users' UI would be cool. I assume by this you mean their layout/widgets. For instance, if the owner focuses on a z-profile plot during a shared session, but a collaborator doesn't have that widget opened within their layout, they will have to then go and open that widget.

The reason I'm hesitant to do this is because users can have very different screen sizes, so we really need to investigate how much of a difference that makes. If we had some sort of auto-layout feature, then that would be an option

@Jordatious
Copy link

Jordatious commented Sep 27, 2023

Is this any different from using my custom layout on my laptop screen vs. my small monitor at work vs. my/your(!) large monitor at home? I've been doing that for years and haven't had issues.

@veggiesaurus
Copy link
Author

Is this any different from using my custom layout on my laptop screen vs. my small monitor at work vs. my/your(!) large monitor at home? I've been doing that for years and haven't had issues.

It's a bit different, because other people can muck with your layout etc. In any case we don't have support for UI stuff in the existing workspace functionality, so it's definitely not going to be added into this prototype.

@kswang1029 kswang1029 added enhancement New feature or request question Further information is requested labels Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
No open projects
Status: New issues
Development

No branches or pull requests

3 participants