Skip to content

A modern, responsive book management application built with Next.js for tracking personal book collections with CRUD operations and local storage.

Notifications You must be signed in to change notification settings

ccmelvin/book-library-app

Repository files navigation

📚 Personal Book Library

Next.js TypeScript Tailwind CSS Jest

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.

✨ Features

  • 📖 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

📸 Screenshots

Book Library App Demo

Clean, modern interface for managing your personal book collection

🚀 Demo

Live DemoRepository

🛠️ Installation

  1. Clone the repository

    git clone https://github.com/ccmelvin/personal-book-library-next.git
    cd personal-book-library-next
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Run the development server

    npm run dev
    # or
    yarn dev
  4. Open your browser

    Navigate to http://localhost:3000 to start managing your book library.

📋 Available Scripts

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 mode

🧪 Testing

This 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:coverage

Test Coverage:

  • ✅ Component rendering and interactions
  • ✅ Custom hooks functionality
  • ✅ Utility functions
  • ✅ Local storage operations

🔧 Tech Stack

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

📁 Project Structure

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

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

This project is open source and available under the MIT License.

👨‍💻 Author

Cassia Melvin


⭐ Star this repository if you found it helpful!

About

A modern, responsive book management application built with Next.js for tracking personal book collections with CRUD operations and local storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published