Provide a new menu item in the navigation bar to export all user data as Json.
create new DataExport page in Vue, that provides a FileSelector component (choose from Vuetify), that allows to specify a file-path, where all user data, i.e. all categories including the cards, that this user has at least READ access for, are stored into.
All data are stored in one file.
The frontend only selects the file path and then calls a new "to be implemented" export endpoint, that needs no additional parameters to the file path (optionally - but better later, we can allow to save only selected categories)
So all export functionality will be implemented in the server / backend:
an ExportController, that provides the endpoint for frontend calls
an ExportService, that loops over all categories, where the user has at least READ authority and stores a Json array where each category entry ha the following three properties
the collection name (key)
the associated collection of Cards data as nested array of Json
the metadata documents of the CATEGORY collection, that store the name, description and access rights for this category.
Provide a new menu item in the navigation bar to export all user data as Json.
DataExport
page in Vue, that provides a FileSelector component (choose from Vuetify), that allows to specify a file-path, where all user data, i.e. all categories including the cards, that this user has at least READ access for, are stored into.So all export functionality will be implemented in the server / backend:
CATEGORY
collection, that store the name, description and access rights for this category.