How kawsaro/bookrec works
bookRec helps readers find legitimate free books they can comfortably read. The main journey is search, compare reading level and access, open a book, then read it in the built-in reader. The graph includes documented catalog breadth and local indexes; some source adapters and page implementations were not sampled, so their links follow README descriptions and exact paths in the tree. Search ranking, textbook course levels, library/purchase fallback, and reader controls are included as distinct capabilities.
Main entry points: catalog.ts Unified catalog · [ref]/page.tsx Book details · [ref]/page.tsx Reader page · SearchBox.tsx Search box
Components 23
Discovery
- Home
app/page.tsx - Search box
components/SearchBox.tsx - Suggestions API
app/api/suggest/route.ts - Search results
app/search/page.tsx - Level setup
app/onboarding/page.tsx - Level picker
components/LevelPicker.tsx
Catalog and sources
- Unified catalog
lib/catalog.ts - Gutenberg index
lib/index/gutenberg-index.ts - Textbook index
lib/index/textbook-index.ts - Gutendex adapter
lib/sources/gutendex.ts - Open Library adapter
lib/sources/openlibrary.ts - OpenStax adapter
lib/sources/openstax.ts - Textbook Library adapter
lib/sources/openstax.ts - Other catalog adapters
lib/sources
Book details
- Book details
app/book/[ref]/page.tsx - Reading-level scoring
lib/readability/index.ts - Purchase options
lib/sources/purchase.ts
Reading
- Text processing
lib/text/gutenberg.ts - Reader page
app/read/[ref]/page.tsx - Reading controls
components/Reader.tsx
Other components
- Reader
- Book catalog services
- Project Gutenberg
Connections 30
- Reader → Home: starts at
- Home → Search box: searches with
- Search box → Suggestions API: requests suggestions
- Suggestions API → Gutenberg index: queries
- Search box → Search results: submits query
- Reader → Level setup: sets level
- Level setup → Level picker: renders
- Search results → Unified catalog: requests results
- Unified catalog → Gutenberg index: searches locally
- Unified catalog → Textbook index: searches locally
- Unified catalog → Gutendex adapter: falls back to
- Unified catalog → Open Library adapter: searches
- Unified catalog → OpenStax adapter: searches
- Unified catalog → Textbook Library adapter: searches
- Unified catalog → Other catalog adapters: searches
- Gutendex adapter → Book catalog services: queries
- Open Library adapter → Book catalog services: queries
- OpenStax adapter → Book catalog services: queries
- Textbook Library adapter → Book catalog services: queries
- Other catalog adapters → Book catalog services: queries
- Search results → Book details: opens book
- Book details → Unified catalog: loads book
- Book details → Reading-level scoring: estimates and scores
- Book details → Text processing: loads text for scoring
- Book details → Purchase options: shows purchase options
- Text processing → Project Gutenberg: fetches text
- Book details → Reader page: opens reader
- Reader page → Unified catalog: loads book
- Reader page → Text processing: loads chapters
- Reader page → Reading controls: renders