Heyho,
as the title says I am currently working on a project with the aim to provide a modern offline-capable web frontend to read and manage ebooks.
I do plan the following feature set:
* Download books and read them offline
* Sync reading progress and annotations
* Manage Ebook library
* Support multiple users (e.g. scope of family)
* Manage a wishlist and explore books
* Maybe a federated network of recommendations (big maybe, and for later)
The project should be available for self hosting. In the background I want to use Calibre to prevent a lock-in of the user in "my" database. Also, Calibre has a ton of features that the user could still use then.
However, I am looking for advice from somebody who has some knowledge of Calibre and how it stores data - or at least has a gut feeling. I see multiple options for data management and I am researching what would be the best solution, given the above use-cases but assuming that the main use-case will be "Single User - Multi Devices". My ideas would be:
1) Use own database format and just export to Calibre format (most effort, most error prone as there will be separate 2 data schemas)
2) Manage book data with Calibredb, create custom columns to store reading progress, rating etc. per user. Store everything else (e.g. annotations) in datafiles. Could be a lot of custom columns - but will this be a problem?
3) Do everything with CalibreDb + Datafiles, no custom columns - Maybe it could even support the Calibre Content Server using this setup, but probably certain actions (e.g. filtering all books "owned" by a user) would take very long for big libraries. Would definitely require a cache layer.
Are there some opinions?
Thank you for reading