BookNest is a minimal library management system built using React, TypeScript, Redux Toolkit Query (RTK Query), and optionally styled with Tailwind CSS or plain CSS. It allows users to manage a collection of books through CRUD operations and enables simple borrowing functionalities.
This project focuses on building a functional, clean, and responsive client-side application that interacts with a RESTful API. Authentication, category filters, and payment features are intentionally excluded to keep the project minimal and focused on core logic and UI/UX.
- Features
- Page List
- Installation
- Usage
- Project Structure
- Dependencies
- Configuration
- Examples
- Troubleshooting
- Contributors
- License
All features are accessible without login or authentication.
-
Book List Table
- View all books with details: Title, Author, Genre, ISBN, Copies, Availability.
-
Actions
-
Add New Book
-
Edit Book
- Business Logic: If copies = 0 → book becomes unavailable.
-
Delete Book
- Confirmation required before deletion.
-
Borrow Book
- Form to borrow book with validation.
-
-
Fields: Quantity, Due Date.
-
Business Logic:
- Quantity ≤ Available Copies.
- If Copies = 0 → mark as unavailable.
-
Redirects to Borrow Summary after successful submission.
- Aggregated view of all borrowed books.
- Columns: Book Title, ISBN, Total Quantity Borrowed.
-
Navbar
-
Navigation links to:
- All Books
- Add Book
- Borrow Summary
-
-
Footer
-
Responsive Layout
- Fully optimized for mobile, tablet, and desktop screens.
| Route | Description |
|---|---|
/books |
List of all books with edit, delete, and borrow options |
/create-book |
Form to add a new book |
/books/:id |
View detailed information about a book |
/edit-book/:id |
Edit book details |
/borrow/:bookId |
Form to borrow a specific book |
/borrow-summary |
Aggregated summary of borrowed books |
-
Clone the repository
git clone https://github.com/MxAziz/LMS-with-Redux-toolkit.git cd LMS-with-Redux-toolkit -
Install dependencies
npm install
-
Start development server
npm run dev
⚠️ Ensure your backend API is running and accessible.
- Launch the development server.
- Navigate to
/booksto browse and manage books. - Use
/create-bookto add new entries. - Borrow books directly from the list.
- Visit
/borrow-summaryto see borrowing analytics.
src/
├── app/
├── components/
├── features/
│ ├── books/
│ ├── borrow/
├── pages/
│ ├── BookList.tsx
│ ├── CreateBook.tsx
│ ├── EditBook.tsx
│ ├── BorrowBook.tsx
│ ├── BorrowSummary.tsx
├── services/ (RTK Query APIs)
├── types/
├── utils/
- React with TypeScript
- Redux Toolkit Query (RTK Query)
- React Router DOM
- Tailwind CSS (or plain CSS)
- React Hook Form (for type-safe forms)
- Add a new book → form auto-clears and redirects to book list.
- Borrowing a book → updates availability in real-time.
- Viewing borrow summary → shows aggregate data from backend.
| Issue | Solution |
|---|---|
| API errors | Check if backend is running and CORS is configured |
| Form validation issues | Ensure correct types and constraints are enforced |
| UI not updating | Check Redux state and API response integration |
- ** Muhammad Aziz ** – Developer & Designer (Feel free to add more team members here)