A modern, responsive book management application built with Next.js that allows you to track your personal book collection with full CRUD operations and local storage persistence.
- 📖 Add Books: Create new book entries with title, author, genre, and reading status
- 👀 View Library: Browse your complete book collection with a clean, responsive interface
- 🔍 Filter & Search: Find books by genre, reading status, or search terms
- ✏️ Edit Books: Update book information and reading progress
- 🗑️ Delete Books: Remove books from your collection
- 💾 Local Storage: Data persists in your browser's local storage
- 📱 Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- ⚡ Fast Performance: Optimized with Next.js 14 and modern React patterns
Clean, modern interface for managing your personal book collection
-
Clone the repository
git clone https://github.com/ccmelvin/personal-book-library-next.git cd personal-book-library-next -
Install dependencies
npm install # or yarn install -
Run the development server
npm run dev # or yarn dev -
Open your browser
Navigate to http://localhost:3000 to start managing your book library.
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm test # Run tests
npm run test:watch # Run tests in watch modeThis project includes comprehensive test coverage using Jest and React Testing Library.
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverageTest Coverage:
- ✅ Component rendering and interactions
- ✅ Custom hooks functionality
- ✅ Utility functions
- ✅ Local storage operations
| Technology | Purpose | Version |
|---|---|---|
| Next.js | React framework with App Router | 14.x |
| TypeScript | Type-safe development | 5.x |
| Tailwind CSS | Utility-first styling | 3.x |
| Jest | Testing framework | Latest |
| React Testing Library | Component testing utilities | Latest |
| Local Storage | Client-side data persistence | Native API |
personal-book-library-next/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── layout.tsx # Root layout
│ │ ├── page.tsx # Home page
│ │ └── __tests__/ # App tests
│ ├── components/ # React components
│ │ ├── BookList.tsx # Display books grid/list
│ │ ├── BookForm.tsx # Add/edit book form
│ │ ├── BookFilters.tsx # Search and filter controls
│ │ └── __tests__/ # Component tests
│ ├── hooks/ # Custom React hooks
│ │ ├── useLocalStorage.ts # Local storage hook
│ │ └── __tests__/ # Hook tests
│ ├── types/ # TypeScript definitions
│ │ └── book.ts # Book interface
│ └── utils/ # Utility functions
│ ├── bookUtils.ts # Book-related utilities
│ └── __tests__/ # Utility tests
├── public/ # Static assets
├── jest.config.js # Jest configuration
├── tailwind.config.js # Tailwind configuration
└── tsconfig.json # TypeScript configuration
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Cassia Melvin
- GitHub: @ccmelvin
⭐ Star this repository if you found it helpful!
