EBook-Reader
Application description from a users perspective
Scene 1: Splash image and 3 buttons:
.. Where I left off ... -- Opens the last book you read at the place you stopped.
.. Bookmarks ... -- opens a list of the books you have bookmarks in and lets you open them to there. -- previews 2 lines above and below bookmark.
... Library ... -- opens a scrollable page of "shelves" Each shelf has a label which is user defined, and each shelf presents the books on it as a coverflow. Books can be moved between shelves by dragging and dropping. Each shelf has a context menu to control order, title, author or user defined. If user defined menu will present shelf as a draggable list instead of a coverflow when you want to re-order books. backswipe returns to coverflow.
in either the bookmarks view, tapping a book takes you to either the bookmark or the title page. upswipe downswipe provide smooth scrolling. Left and right swipe provide page at a time scrolling. Back swipe in gesture offers to bookmark with a dialog and returns to the shelf you came from.
When on a book, top left menu presents presentation options, which can be set book by book or globally. Type face (if I can figure out how), size, leading, justification, colors etc..
Images default to no larger than 1/4 screen, but touch results in lightbox like zoom.
Menu at splash or library offers import, and delete of books. When in a shelf, books can be deleted by dragging them to the recycle.
Features Wish List
- on-pc conversion of various formats to pre-compatible format -probably using plucker distiller. Should support
- html
- rde
- doc
- m4b
- pdb (palm-doc)
- pdb (isilo), prc (unencrypted mobipocket)
- prc (encrypted) # lots of people with a ton of fictionwise books want this
- epub [1]
- plain text
- plucker
- .lit
- on Pre conversion of html and text docs by download from the cloud.
- Library supports user definable catagories for sorting and shelving
- Shelves can be user defined to hold any collection of books a reader cares to:
- By author
- By Genre
- By Geography
- By cover color
- By Series # very useful to group books in a series together
- The user should define the sorting catagories. Shelf design can initially be a scroll list like the Contacts app.
- Book display page is minimally invasive making the most space available to read on as possible
- Typography is bifocal friendly. User definable print sizes, and if possible type faces.
- user defined foreground/background colors for text.
- Sepia
- Night mode
- Adjust screen brightness
- multiple bookmarks per doc.
- shallow menus
- smooth scrolling or page-at-a-time scrolling by gestures.
- plucker style button-based scrolling
- swipe gesture based scrolling
- auto-scrolling with user adjustable speed
- Pause auto-scrolling by tapping gesture area
- page turn on screen tap option
- support for covers.
- coverflow view of shelves.
- easy rapid sorting of books onto shelves.
- Change text size
- Possibly be able to add books over Wi-Fi
- Copy & Paste words
- Dictionary search implemented
- Support for rotation
- Portrait and Landscape views (at least for the reading screen)
- Auto adjust gesture orientation to match view
- Include a rotation "lock" to prevent unwanted rotations (or just ignore the accelerometer and make it a button or gesture controlled rotation)
Data Structure
Table: Catalog
- catalogId: (globally unique ID - a system generated number)
- Title: string
- Author: string
- Genre: string
- catalogType: (B,S - book or series)
- ShelfId:
- CoverImage: Filename
- Encrypted: boolean
- Format: string (book format)
Table: BookSeries
- bookseriesId: (globally unique ID - a system generated number)
- catSeriesId: (must be present in book table and the catType must be 'S')
- catBookId: (must be present in book table and the catType must be 'B')
Table: Bookmarks
- bkmkId:
- bookId: (must be present in book table)
- Position: ( an integer, refering to the character in the file at the top of the screen.)
Table: BookShelf
- shelfId:
- ShelfName:
- ShelfOrder: (A, T, or U) Representing Author, Title or User Set
Table ShelfOrder
- shelfId:
- bookId:
- position: (integer representing the position of this book on this shelf)
Table: BookText
- BookId:
- BookText:
Data Issues
- This structure does not provide for books stored as chapters. This structure presumes a book is a single document. That document might have internal chapter indicators, but this structure does not divide the book up.
- This structure makes no provision for the internal storage of images.
- Should we actually store the text of the book in the DB or do we leave the book on the file system and just store a link to it?
- Correct me if i am wrong, but the current SDK does not allow for writing files to the file system, so the database would be the best and sort-of only way to do it. Also, the ajax request is a little slow, the database might show better performance loading.
There is some point, therefore to consider if in booktext, we want to simply store a plucker file, which CAN contain images and text intermingled.
Book Format Issues
- Can javascript on the device natively parse/navigate all of the above list formats?
- No.
- Can javascript on the device effectively parse/navigate the plucker format (if we settle on this one), or do we need our own format?
- Perhaps. plucker decoding sources in JAVA at http://www.fbreader.org/downloads.php
- Possible ePub since it's basically XHTML? - ePub makes the most sense as a format. It's completely open, and it's really just HTML inside the file.
- Once we settle on a format, will the device be powerful enough to convert other formats to this one, or will we need a PC app to do the converting?
- on pc app
- some scripts found so far:
- ereader2html -- python app, same as plucker converters.
- pdbshred -- Binary app for unencrypting secure palm reader pdb's. Sorry.
- Shouldn't reinvent the wheel. Use calibre for conversion, it's available on all platforms http://calibre.kovidgoyal.net/
- (include others as you find them)
- Has anyone found a free and open source method to unzip files or data streams in javascript??
- all i have found is a page that refers to the huffman compression technique (http://rumkin.com/tools/compression/compress_huff.php), but i don't know if that is how epub files are zipped and i don't know if we can get our hands on the source.
- note that this page says that compressing 15K takes MINUTES... ooops. :-( Not going to work
- all i have found is a page that refers to the huffman compression technique (http://rumkin.com/tools/compression/compress_huff.php), but i don't know if that is how epub files are zipped and i don't know if we can get our hands on the source.
- Can we access the Linux command line? Awk and sed could do for some of the conversion, and gzip for the zipping/unzipping. -FreeTim