I'm creating this issue to provide a place to discuss how we want to implement sharing trees with others. While some people may be content with the download options currently in the app, or the download options planned in issue #8, this is far from perfect.
Ideally, sharing a tree should be as simple as it was in the original Plum Tree app; i.e. a user should be able to generate a link they can send to another person to share their tree.
Of the top of my head, I can think of only two ways we can do this given the current architecture of the app:
I'm unsure how well this will work, but it may be possible to use e.g. the Google Drive API to upload a tree to a user's personal Google Drive. If there is a way to automatically share this file to a link, we could use the API to download the tree and display it to the user; e.g. on a /public/GDRIVE_ID path. This would for sure require a lot of consideration and work (e.g. caching the file so a user does not need to redownload the tree every time they visit the same link), but may be more in the spirit of this project (since the idea from the start was to not use our own server to host user data).
There's a reason the original app stored data on the server; it's simply more convenient when we want to share data. To keep costs low, we could time-limit any shared trees and compress/scale-down any images used (preferably only serving them as webp or avif to keep sizes even lower).
Feel free to suggest other options or give your opinions on existing ones. Depending on which method we end up choosing, other questions need to be answered as well (e.g. Google Drive API vs. Dropbox API vs. ...; or in the case of option 2 AWS vs. Firebase vs. ..., what time limit if any, what level of image compression, ...) although I suggest we clear those up only after deciding the general route for this feature.
Issue #46 is probably a good starting point to test some parts required for this feature, as we already need cloud storage and ways to query the data for importing public archive trees.
I'm creating this issue to provide a place to discuss how we want to implement sharing trees with others. While some people may be content with the download options currently in the app, or the download options planned in issue #8, this is far from perfect.
Ideally, sharing a tree should be as simple as it was in the original Plum Tree app; i.e. a user should be able to generate a link they can send to another person to share their tree.
Of the top of my head, I can think of only two ways we can do this given the current architecture of the app:
Feel free to suggest other options or give your opinions on existing ones. Depending on which method we end up choosing, other questions need to be answered as well (e.g. Google Drive API vs. Dropbox API vs. ...; or in the case of option 2 AWS vs. Firebase vs. ..., what time limit if any, what level of image compression, ...) although I suggest we clear those up only after deciding the general route for this feature.