Skip to content

Repository files navigation

ReadLog

Track books and audiobooks you've read.

Live app: https://read-log-pi.vercel.app/

Features

  • Log books — search by title/author, select, and save with format (book, audiobook, e-book) and finish date
  • Multi-source search — searches Open Library and Google Books in parallel, deduplicates results
  • My Library — browse and search your reading history, grid/list view, edit entries
  • "Have I read this?" — quick search against your own library
  • Ratings — rate books 0–5 stars when logging or editing
  • Public feed — anonymous feed of recently logged books on the homepage
  • Google OAuth — sign in with your Google account

Tech stack

  • Next.js 16 / React 19 / TypeScript
  • Prisma 7 + PostgreSQL (Neon)
  • NextAuth v5 (Google OAuth)
  • Material UI 7
  • Jest + Testing Library
  • Vercel

Getting started

npm install
cp .env.example .env    # fill in your values
npx prisma generate
npx prisma db push      # local/dedicated databases only — on a shared database use `prisma db execute` with migration SQL
npm run dev

Testing

npm test              # run all tests
npm run test:coverage # run with coverage report

90 tests across 5 suites covering API integrations, server actions, and components.

Quality gates

  • Pre-commit — ESLint + Prettier via lint-staged
  • Pre-push — TypeScript type-check, ESLint, and full test suite
  • CI — GitHub Actions runs lint, type-check, and tests with coverage on pushes to master and on pull requests targeting master

External APIs

  • Open Library — book search by title/author, no API key required
  • Google Books — secondary search source, requires GOOGLE_BOOKS_API_KEY

Results from both APIs are searched in parallel and deduplicated.

Environment variables

See .env.example for all required variables.

About

Track every book you've read

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages