API roadmap for notes app:
š Collections API
Retrieval ⢠GET /collections ā Get all collections (preload nested collections) ⢠GET /collections/:id/notes ā Get notes by collection ID
Modification ⢠POST /collections ā Create a collection ⢠PATCH /collections/:id ā Update a collection ⢠DELETE /collections/:id ā Delete a collection
š Notes API
Retrieval ⢠GET /notes ā Get all notes (pre populate tag and status objects in each note) ⢠GET /notes/:id ā Get a single note
Modification ⢠POST /collections/:collectionId/notes ā Create a note within a collection ⢠PATCH /notes/:id ā Update a note ⢠DELETE /notes/:id ā Delete a note ⢠PATCH /notes/:id/archive ā Archive a note
š· Tags API
Retrieval ⢠GET /tags ā Get all tags
Modification ⢠POST /tags ā Create a tag ⢠PATCH /tags/:id ā Update a tag ⢠DELETE /tags/:id ā Delete a tag
š Status API
Retrieval ⢠GET /statuses ā Get all statuses
Modification ⢠POST /statuses ā Create a status ⢠PATCH /statuses/:id ā Update a status ⢠DELETE /statuses/:id ā Delete a status (except default ones)
š¹ Additional Considerations ⢠Ensure default statuses (todo, in-progress, pending, done) cannot be deleted. ⢠Use soft deletion (isArchived, isDeleted) instead of hard deletion where necessary. ⢠Implement pagination for GET /notes if the dataset grows large.