### Backend ## UserTable 1. name 2. rootObjectId # create POST /user id name create rootObject and attach objectId to user # read GET /user/ fetch all objects associated with this userId (name) rootObjectId objects[{objectId, objectData}] # update PUT /user/ name # delete DELETE /user/ delete all associated objects delete user ## ObjectTable 1. id 2. userId 3. data - encrypted JSON object # create POST /object generate id userId data return id the client is responsible for updating the parent object's objectId array # read GET /object/ data # update PUT /object/ data the client is responsible for updating the parent object's objectId array # delete DELETE /object/ the client is responsible for updating the parent object's objectId array ... that's it ### Frontend Objects are JSON objects Can be root idk Hats/Views are scopes for other objects (like work, home, etc) Projects are parent objects for kanbans/tasks??? or not??? maybe parents for everything? All parent objects also have a default parent. for easy pick up and use. children objects: tasks - checkbox object, can have notes notes -