Skip to content

Latest commit

 

History

History
93 lines (73 loc) · 3.39 KB

TODO.md

File metadata and controls

93 lines (73 loc) · 3.39 KB

TODO

Common

Accounts

  • Configure permissions for accounts actions
  • Don't publish enable/disable account actions
  • Separate the entity graphql type to Profile and User. The User is a type what other users can see (only id, username, fullName, avatar). The owner and members returns that type. The Profile is the current user's type what contains all available informations.
  • separate enable2Fa to init2Fa and confirm2Fa

User preferences

  • Store the detailed view settings
  • Store the collapsed lists
  • Store the last viewed boards
  • Store the pinned boards and cards

Boards

  • Only the owner can make a board to public/private and remove

Board Members collection

  • It stores the board <-> account relations.
  • Extra field for using invitations.

Lists

Uploads

  • Create file upload service with changeable adapter mixin (Local, S3, Azure...etc)
  • Avatars, card attachments, board cover images
  • Get files via service because we should check the permissions as well

Cards

  • Generate a unique number for the cards. (too expensive to get the max number, maybe if will be aggregate in database module)
  • Add startDate, dueDate to the entity

Watchers

  • Store account <-> board and account <-> list and account <-> card watching links.

Login

  • Password reset doesn't check 2FA and login after the new password without it.

Websocket

  • Token-based authorization via websocket, + generate an instanceID in the browser
  • WS rooms:
    • userID - get all board-specific notifications
    • boardID - get the given board notifications only

Deployment

  • Update docker-compose file (Grafana, Prometheus)

Others

Frontend

  • Avatar component, if no user's avatar create one with initials and hashed bg color of name

Lists

Cards

Kubernetes

  • using Redis Cluster
  • NATS as DaemonSet and nodes connected to local NATS pod
  • using MongoDB ReplicaSet