V-Py / svelte-kanban

A simple kanban made with Svelte
MIT License
46 stars 9 forks source link

Multiuser CRDT issues #92

Open dev-guy opened 1 year ago

dev-guy commented 1 year ago

Test Cases

The following tests need to be run, as real tests and/or thought experiments. List the changes that need to be made to the component in the next section.

  1. Tracking which card is being dragged using the X,Y board coordinates will not work when other users can change the board at the same time. Instead, the id of the card will need to be tracked and the card will need to be located by its id. This will be addressed when #61 is implemented.
  2. The drop target column can be deleted before the user releases the mouse button. This bug will be addressed after #61.
  3. The dragged card can be deleted before the user releases the mouse button. This bug will be addressed after #61.
  4. The column from which a card is dragged can be deleted before the user releases the mouse button. This bug will be addressed after #61.
  5. Moving a column by one user immediately after another user deletes a column may result in errors
  6. Moving or dragging a card within a column immediately after another users deletes the same or different card in the target column may result in errors
  7. Updating a card (eg its title or category) immediately after another user deletes it
  8. Two users drag the same card to different columns at roughly the same time

Changes Needed

  1. Pass column object (from the store) to <Column> instead of an index number, because columns can be reordered
  2. Pass card object (from the store) to <Card> instead of an index number, because cards can be reordered
  3. Pass column objects instead of indices via events
  4. Pass card objects instead of indices via events