Requirements
User persona
My name is Anne E.B. Reader and I’m a Calibre user.
I would love to be able to quickly open a book from my library without having to open Calibre, wait for it to load, search with Ctrl-F, open the book by clicking the format, then switch back to Calibre and close it.
I use Arch btw.
Assumptions/Constraints
My library is for personal use and, for sure, contains < 50 000 books. (That’d be if I got like two books every week over 50 years.)
Technical note: Their device might have only 1 GB of RAM, so the program must use < 100 MB (roughly max. 2 KB per book if all books are represented in memory).
Use cases
I want to be able to quickly open a book from my library, by entering a word or two of the book’s title and pressing Enter.
I also want to be able to use the author’s name to help narrow down the search.
I also want to be able to use topics/tags to help narrow down the search.
If I have the book in more than one format in my library (e.g. PDF and EPUB), I want to be able to choose the format to open for that particular book.
For some books, the layout of the PDF is better.
If I’m reading a programming book and following along in an IDE, I want to be able to open the EPUB in a narrow window and have the text be reflowed.
The book should be opened in my default application for that file format.
I have more than one Calibre library on my device, so I want to be able to specify which library to search.
However, most of my searches will be in the same library, in which case I don’t want to have to specify it. I.e. I want to set a default or have my last choice remembered.
In most cases, once I’ve opened the book I’m looking for, I don’t need to search any further, so the program should close itself.
For cases where I want to do a subsequent search, if the program starts up fast enough, I don’t mind just launching a new instance. Otherwise, I should have the option to keep the program open after my first search is successfully completed.
Since I don’t typically finish a book in one sitting, I want to be able to re-open a recently opened book without having to search for it from scratch.
Out of scope
— I’m A. Lil Librarian and I want to do library management tasks, like:
- adding books to the library
- updating the metadata for a book
- converting books from one format to another
- checking that author names are recorded consistently
- checking that publisher names are recorded consistently
- displaying the books published by a given publisher
- displaying books sorted by publication date
- calculating summary statistics for publication dates, file formats, language, etc.
— That’s cool, but you must just use the Calibre GUI or
calibredb for that. Or some other Calibre-compatible
application. Or even sqlite directly.