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

Implement multi-user experience #150

Open
invisibleroads opened this issue Dec 26, 2019 · 0 comments
Open

Implement multi-user experience #150

invisibleroads opened this issue Dec 26, 2019 · 0 comments

Comments

@invisibleroads
Copy link
Member

invisibleroads commented Dec 26, 2019

Among the topics discussed this morning was how to properly implement the multi-user experience.
https://docs.google.com/document/d/1enWIQKUBlPj7DxWjFTuv0d3eZ38eHv7xgUL4uZ9gs6s/edit#

  • Work through how to implement live update when other users update an asset

    • Using Websockets
      • Channel ID = Utility ID
        • On Sign In, each user subscribes to a /utilities/UTILITY-ID
        • When server updates, it finds which utilities it should update
        • Sends message on each channel asking clients to refresh
        • Client listens to channel and refreshes on receiving update signal
  • Decide how to update (PROBLEM: When multiple people are updating, one person's changes might overwrite another person's changes and this will happen if you send the whole JSON)

    • Option 1: Someone enters sketch mode, everyone else is locked out of editing that set of assets
      • PHASE 1: Lock everything that the user can edit on entering sketch mode
        • Each asset has a property isLocked = true/false
        • When user tries to sketch on locked assets, there is a error snackbar or dialog indicating that the assets are locked
      • [Postponed] PHASE 2:
        • If nothing is selected when they enter sketch mode, then they can only add assets.
        • Select what user wants to edit before entering sketch mode and only lock those assets.
    • Option 2: Update JSON as people are sketching (might complicate undo)
@invisibleroads invisibleroads changed the title Decide when to update Implement multi-user experience Dec 26, 2019
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

No branches or pull requests

1 participant