/e-reader

E-Reader project for CCS 8

Primary LanguageHTML

E-Reader

EPUB reader written in vanilla JavaScript. Aims to be a convenient way to view .epub files you have on your device. Uses epub.js.

DEVELOPING

  • Install Node.js
  • Clone this repository
  • Run npm install --dev
  • Run npm run dev to start nodemon
  • Run npm test to start the tests with the live server

THEMES

  • Themes can be defined in src/css/themes.css.
  • They can be added to the selection by adding its class name to settingOptions in State.js.

TODO

  • Implement Cypress for end-to-end testing
  • Implement epub reader
  • Implement epub file uploads
    • Check for specifically epub files with proper format
    • Drag-and-drop
    • Upload button (HTML)
  • Get book metadata
  • Store list of previously opened books
    • Use local storage
  • Highlights
  • Bookmarks
  • Customizable options
    • The functionality that lets you select these
    • More themes that aren't samples
    • Fonts
    • Speech options
  • Table of Contents
  • Jump to a given page
    • Jump with page number
    • Page slider
  • Remember last read page
  • Reading Progress
    • Percent
    • Reading Time
  • Search
    • Search in book
    • Search for a book using metadata
  • Library Organization
    • Favorites
    • Categories sorta?
    • Custom tags
  • Modals for alerts?
  • Text to Speech

Tests

This project uses Mocha and Chai. Load the page tests/tests.html with live-server to test.

Write tests in tests/tests.js.

Credits

https://github.com/github/gitignore/blob/main/Node.gitignore - The .gitignore