PeWu / topola-viewer

Topola Genealogy Viewer – interactive genealogy visualization
https://pewu.github.io/topola-viewer
Apache License 2.0
194 stars 49 forks source link

Backoffice #14

Open luisfmelo opened 4 years ago

luisfmelo commented 4 years ago

What if we built a backoffice? The web app could easily implement some crud functionality.

And we could change the data source. We could load with a JSON file or, we could load using a database.

luisfmelo commented 4 years ago

For larger data, we could serve as streaming and just load all the data in the background in chunks instead of just wait.

PeWu commented 4 years ago

Hi Luís,

Thanks for the suggestion. Let me separately address 2 parts of this suggestion:

  1. Add CRUD functionality to the web app,
  2. Introduce a server that serves data to the viewer.

Starting from (1): I imagine Topola Viewer to be a read-only web application. My experience is that people doing genealogy research use one or another application for entering data and are reluctant to changing it. I myself am using GenealogyJ, which is old and unmaintained and quite cumbersome. However, all my data is there and moving to a different app poses a number of challenges starting from data format compatibility, ending with getting used to a different workflow. Nonetheless, I believe that adding a new visualization app that can pull in data from various sources is useful.

As for (2), a server would be useful for several reasons: a). Storing the data, so that I don't have to upload a file each time I want to see visualizations b). Managing access permissions, so that I can share my data c). Serving data in an optimized way (just load the data that is needed for the current view)

In other words, I'd like to be able to upload a GEDCOM file and a) click save and be able to view it at any later time, b) click share and make the data accessible by someone else.

These things can't be done without storing the file somewhere on the Web and managing access permissions. However, I think that this should be doable without implementing a dedicated server. I haven't done too much research on the actual solutions but storing and sharing files should be achievable using Google Drive (there are apps that do it). I have also looked briefly at Auth0, which could be used to store user preferences, like chart settings or last viewed data sources.

Nonetheless, adding additional data sources to Topola Viewer is something that I fully support. I can imagine a server implementation as a separate project and support added for it in Topola Viewer. If this server would expose a good API, maybe more visualization projects would be willing to use it. Take for example the WikiTree API and the applications that were created around it. You can also consider building an API on top of an existing project such as webtrees (there is actually a feature request open just for that).