https://github.com/zaydiscold/book-review-tracker
A streamlined book review tracker with modal-based reviews and OpenLibrary integration
https://github.com/zaydiscold/book-review-tracker
Last synced: 9 days ago
JSON representation
A streamlined book review tracker with modal-based reviews and OpenLibrary integration
- Host: GitHub
- URL: https://github.com/zaydiscold/book-review-tracker
- Owner: zaydiscold
- Created: 2025-10-15T02:12:33.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-11-27T01:20:29.000Z (7 months ago)
- Last Synced: 2025-11-28T07:26:53.191Z (7 months ago)
- Language: JavaScript
- Homepage: https://zaydiscold.github.io/book-review-tracker/
- Size: 13.1 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A Reader's Memoir
A local-first tracker for your library, wishlist, notes, and quick searches against OpenLibrary or LibGen.
## Highlights
- Add books with title, author, status, and covers pulled from OpenLibrary or LibGen metadata.
- Search LibGen and OpenLibrary from the landing page, then drop results straight into your library or wishlist.
- Works offline after first load with IndexedDB storage; optional backend proxy for LibGen.
- Reading stats view is available; more reporting is planned.
## Stack
- React 18 + Vite with Tailwind.
- IndexedDB for persistence (client only).
- Optional LibGen proxy: Express on port 4000 forwarding to a Python microservice on 5001.
## Supabase sync (optional)
- Drop `docs/supabase.sql` into the Supabase SQL editor to create tables, indexes, triggers, and policies.
- Add env vars in `src/frontend/.env`:
```
VITE_SUPABASE_URL=...
VITE_SUPABASE_ANON_KEY=...
```
- The app will auto-sync when those env vars are set (see `src/data/supabaseClient.js` and `src/data/cloudSync.js`).
## Getting Started
Frontend
```
cd src/frontend
npm install
npm run dev -- --host --port 5174
```
Open http://localhost:5174/book-review-tracker/
Frontend build
```
cd src/frontend
npm run build
```
Optional backend (LibGen proxy)
```
cd src/backend
npm install
node server.js
```
Ensure the Python LibGen service is running on port 5001 before using the proxy.
## Project Map
```
book-review-tracker/
├─ src/
│ ├─ frontend/ React app, Tailwind styles, components, data clients
│ ├─ backend/ Express proxy for LibGen
│ ├─ data/ Shared helpers for storage and APIs
│ ├─ python-service/ LibGen microservice (manual start)
│ └─ utils/ Legacy helpers now removed
├─ docs/ Plan and setup notes
└─ README.md
```
## Usage Notes
- Add books manually or from search results; LibGen metadata flows through when searched there.
- Status options include wishlist, reading, finished, on hold, and did not finish.
- Data stays in the browser unless you wire up the proxy and cloud sync.
## Troubleshooting
- White screen during development: run `npm run dev` from `src/frontend` and confirm Tailwind content globs target frontend files.
- LibGen search fails: start the Python service on 5001 and the Express proxy on 4000, or rely on OpenLibrary search only.
- Missing data after reload: some browsers block IndexedDB in private mode; switch to a regular tab.
## License
MIT.