71 lines
1.1 KiB
Markdown
71 lines
1.1 KiB
Markdown
### Backend
|
|
## UserTable
|
|
1. name
|
|
2. rootObjectId
|
|
|
|
# create
|
|
POST /user
|
|
id
|
|
name
|
|
create rootObject and attach objectId to user
|
|
|
|
# read
|
|
GET /user/<id>
|
|
fetch all objects associated with this userId (name)
|
|
rootObjectId
|
|
objects[{objectId, objectData}]
|
|
|
|
# update
|
|
PUT /user/<id>
|
|
name
|
|
|
|
# delete
|
|
DELETE /user/<id>
|
|
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/<id>
|
|
data
|
|
|
|
# update
|
|
PUT /object/<id>
|
|
data
|
|
the client is responsible for updating the parent object's objectId array
|
|
|
|
# delete
|
|
DELETE /object/<id>
|
|
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 - |