A modern, personalized book recommendation and reading tracker app built with Next.js 15, Redux Toolkit, and Tailwind CSS.
- Personal Library: Add books to "Want to Read", "Currently Reading", or "Completed" lists
- Favorites: Mark books as favorites with visual indicators
- Ratings: Rate books 1-5 stars to improve recommendations
- Progress Tracking: Track reading progress by page number with visual progress bars
- Target Dates: Set reading goals with target completion dates
- Google Books Integration: Search and discover books using Google Books API
- Smart Search: Find books by title, author, or genre
- Book Details: Rich book information including descriptions, ratings, and cover images
- Daily/Weekly Goals: Set customizable reading goals (pages per day/week)
- Progress Tracking: Visual progress indicators and achievement system
- Reading Streaks: Track consecutive days of reading
- Statistics: View reading statistics and achievements
- Personal Notes: Add notes and thoughts for each book
- Rich Text: Simple note-taking with timestamps
- Book Reviews: Write and manage book reviews
- Dark/Light Mode: Toggle between themes with system preference detection
- Responsive Design: Optimized for mobile and desktop
- Smooth Animations: Framer Motion animations for enhanced UX
- Modern UI: Clean, modern interface with Tailwind CSS
- Local Storage: All data persisted locally using Redux Persist
- Cross-Device Sync: Data syncs across browser sessions
- Import/Export: Easy data management and backup
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd book-tracker
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
npm run dev- Start development server with Turbopacknpm run build- Build for production and format codenpm run start- Start production servernpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run format:check- Check code formatting
- Next.js 15 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS v4 - Utility-first CSS framework
- Framer Motion - Animation library
- Redux Toolkit - Predictable state container
- Redux Persist - State persistence
- React Redux - React bindings
- Radix UI - Accessible component primitives
- Lucide React - Beautiful icons
- Classnames - Conditional CSS classes
- Google Books API - Book data and search
- Local Storage - Data persistence
- ESLint - Code linting
- Prettier - Code formatting (120 character width)
- Turbopack - Fast bundling
- Go to Discover page
- Search for books using the search bar
- Click on a book to view details
- Use the action buttons to add to your library:
- Want to Read - Add to reading list
- Start Reading - Mark as currently reading
- Completed - Mark as finished
- Favorite - Add to favorites
- Open a book from your Library
- Use the progress tracker to update current page
- Set target completion date
- View progress bar in library view
- Go to Goals page
- Set daily and weekly page goals
- Log pages read to track progress
- View achievements and statistics
- Open any book from your library
- Add personal notes and thoughts
- Notes are automatically timestamped
- Edit or delete notes as needed
- Toggle between light and dark modes using the theme button
- System preference detection for automatic theme switching
- Custom CSS variables for easy theme customization
- Built with Tailwind CSS for easy customization
- Responsive design patterns
- Custom component library in
src/components/ui/
src/
βββ app/ # Next.js App Router
β βββ (routes)/ # Route groups
β β βββ book/[id]/ # Book detail pages
β β βββ discover/ # Book discovery
β β βββ goals/ # Reading goals
β β βββ library/ # Personal library
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
βββ components/ # Reusable components
β βββ ui/ # UI primitives
β βββ BookCard.tsx # Book display component
β βββ NavBar.tsx # Navigation
β βββ ThemeToggle.tsx # Theme switcher
βββ lib/ # Utilities and configuration
β βββ providers/ # React providers
β βββ store/ # Redux store and slices
β βββ utils/ # Helper functions
βββ hooks/ # Custom React hooks
Create a .env.local file for environment-specific configuration:
NEXT_PUBLIC_SITE_URL=http://localhost:3000The app uses Google Books API for book data. No API key required for basic usage.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Books API for book data
- Next.js for the amazing React framework
- Tailwind CSS for the utility-first CSS
- Redux Toolkit for state management
- Framer Motion for animations
Happy Reading! πβ¨