Skip to content

Realtime Collaborative Annotations

Denny George edited this page Apr 25, 2020 · 10 revisions

Outline

  • Description
  • Spec
  • Implementation
  • Testing
  • Use
  • Demo
  • Changelog

Description

Every post in the archive has some metadata that can be filled automatically or by a user. These metadatas are usually divided into groups called Template. Usually a set of users based on their expertise or domains might have a Template that they focus on. This document focus on Realtime collaborative aspect of viewing and editing values inside a template.

Spec

  • Developer can define the fields in a template
  • User can view the metadata
  • User can see who else is viewing the page
  • User can see other users who are editing the page
  • User can see which parts of the form are being edited by which user
  • User can see if new data is available for syncing
  • User can see new data being fetched and updated on their screen
  • User can not edit a metadata field if another user is already editing it

Implementation

MetadataEditorRoomRoute
    join
    startEdit(metadataKey, currentValue)
    stopEdit(metadataKey, finalValue)
    leave
MetadataEditorRoomController
    createRoom
    initData
    getData
    addUser
    removeUser
    addEdit(userId, metadataKey, currentvalue)
    stopEdit(userId, metadataKey, finalValue)
MetadataEditorModel
   getData()
   
Clone this wiki locally