How gambirbuilds/bookvault works
BookVault is a client-side book discovery and reading-tracker application. Readers browse or search a curated catalog, open book details and authorized access links, then manage favorites, reading lists, and progress in a persistent personal library. The graph includes catalog, author/category discovery, recommendations, and reading-goal capabilities documented by the README. Some page and utility implementations were not excerpted; their documented features are included, but uncertain internal links are omitted.
Main entry points: books.js Combined book catalog · App.tsx Routed app shell · BookDetails.jsx Book details and access · Books.jsx Book search and browse
Components 22
App experience
- Routed app shell
src/App.tsx - Book cards and grid
src/components/BookCard.jsx - Access classification
src/components/BookAccessBadge.jsx
Discovery
- Home discovery
src/pages/Home.jsx - Book search and browse
src/pages/Books.jsx - Book details and access
src/pages/BookDetails.jsx - Category discovery
src/pages/Categories.jsx - Author discovery
src/pages/Authors.jsx - Global search
src/components/GlobalSearchModal.jsx - Search suggestions
src/components/SearchBar.jsx - Filtering and sorting
src/utils/filters.js - Recommendations
src/utils/recommendations.js
Catalog data
- Combined book catalog
src/data/books.js - Disciplinary book collections
src/data/books - Category metadata
src/data/categories.js - Author biographies
src/data/authors.js - Literary quotes
src/data/quotes.js
Reading library
- Personal library dashboard
src/pages/MyLibrary.jsx - Library state and actions
src/context/LibraryContext.jsx - Progress controls
src/components/ReadingProgress.jsx - Browser persistence
src/utils/storage.js
Other components
- Reader
Connections 42
- Reader → Routed app shell: opens
README.md - Routed app shell → Home discovery: routes to
src/App.tsx - Routed app shell → Book search and browse: routes to
src/App.tsx - Routed app shell → Book details and access: routes to
src/App.tsx - Routed app shell → Category discovery: routes to
src/App.tsx - Routed app shell → Author discovery: routes to
src/App.tsx - Routed app shell → Personal library dashboard: routes to
src/App.tsx - Reader → Book search and browse: searches and filters
README.md - Reader → Global search: searches
README.md - Reader → Category discovery: explores
README.md - Reader → Author discovery: explores
README.md - Home discovery → Combined book catalog: selects books
src/pages/Home.jsx - Home discovery → Category metadata: uses categories
src/pages/Home.jsx - Home discovery → Literary quotes: uses quotes
src/pages/Home.jsx - Home discovery → Book cards and grid: renders
src/pages/Home.jsx - Book search and browse → Combined book catalog: browses
src/pages/Books.jsx - Book search and browse → Filtering and sorting: filters and sorts
src/pages/Books.jsx - Book search and browse → Search suggestions: renders
src/pages/Books.jsx - Book search and browse → Book cards and grid: renders results
src/pages/Books.jsx - Search suggestions → Combined book catalog: suggests from
src/components/SearchBar.jsx - Search suggestions → Filtering and sorting: gets suggestions
src/components/SearchBar.jsx - Global search → Combined book catalog: searches books
src/components/GlobalSearchModal.jsx - Global search → Category metadata: searches categories
src/components/GlobalSearchModal.jsx - Category discovery → Category metadata: uses categories
src/pages/Categories.jsx - Category discovery → Combined book catalog: lists books
src/pages/Categories.jsx - Author discovery → Combined book catalog: counts authors
src/pages/Authors.jsx - Author discovery → Author biographies: uses biographies
src/pages/Authors.jsx - Book details and access → Combined book catalog: loads book
src/pages/BookDetails.jsx - Book details and access → Recommendations: gets recommendations
src/pages/BookDetails.jsx - Book details and access → Library state and actions: updates reader state
src/pages/BookDetails.jsx - Book details and access → Progress controls: renders progress
src/pages/BookDetails.jsx - Book details and access → Access classification: shows access type
src/pages/BookDetails.jsx - Book cards and grid → Library state and actions: toggles saved status
src/components/BookCard.jsx - Book cards and grid → Access classification: renders
src/components/BookCard.jsx - Personal library dashboard → Library state and actions: reads library state
src/pages/MyLibrary.jsx - Personal library dashboard → Combined book catalog: resolves saved books
src/pages/MyLibrary.jsx - Personal library dashboard → Book cards and grid: renders books
src/pages/MyLibrary.jsx - Progress controls → Library state and actions: updates progress
src/components/ReadingProgress.jsx - Library state and actions → Browser persistence: persists state
src/context/LibraryContext.jsx - Combined book catalog → Disciplinary book collections: combines collections
src/data/books.js - Reader → Personal library dashboard: manages reading
README.md - Reader → Book details and access: opens a book
README.md