Skip to content

maxpatiiuk/goodreads-stats

Repository files navigation

Goodreads Plus

A browser extension for Goodreads that adds data export capability and displays extensive analytics about your reading habits.

Add to Chrome

Video Demo

Report a bug/feature request

Also, check out my Calendar Plus extension for Google Calendar power users.

Features

  • Export entire library
  • Compare reading rates between years
  • Show insights about your favorite books
  • Search your entire book library

Can compare reading rate between the years

Can see how long it took to read each book

Can get an extensive breakdown and insights

Can search and filter your entire library

Can download entire library or a single shelf

Installation

Pre-requisites:

Node.js 18
Npm 8

(Run all commands from the /src directory) Install dependencies:

npm install

Running

Build the front-end for production:

npm run build

Development

Start the watcher script which would rebuild the code on any changes:

npm run watch

Load unpacked extension into Chrome by following the instructions.

Note, on any code change, you will have to press the Reload Extension button in the top left corner of Google Calendar in order to see the newest changes.

React DevTools

You may have noticed that despite our app being built with React, React DevTools browser extension does not work for debugging it.

Instead, a standalone React DevTools (an Electron app) needs to be used. Installation Instructions,

Note, this will only work for when WebPack is run in development mode as we disabled react DevTools integration in production to reduce bundle size.

Testing

Unit tests are powered by Jest. Static Typechecking is powered by TypeScript.

You can run both like this:

npm test

or:

npm t

Alternatively, you can start Jest in watch mode:

npm run unitTests:watch

Generating Docs

cd src
npx typedoc --out docs src