A modern, responsive frontend for the LiteShelf library management system. This application allows users to browse, add, edit, and borrow books from the library collection.
Live Demo: https://liteshelf-library.jakariya.eu.org
- Book Management: Easily add new books, edit existing book details, or remove books from the library.
- Comprehensive Book Listings: View all books in a clean, table-based layout with search and filter capabilities.
- Detailed Book View: Click on any book to see its full details, including title, author, genre, and description.
- Borrowing System: A simple form to borrow books and a summary page to track borrowed items.
- Responsive Design: A mobile-first design that works seamlessly across desktops, tablets, and mobile devices.
- Modern Tech Stack: Built with the latest web technologies for a fast and reliable user experience.
- Framework: React
- Build Tool: Vite
- Language: TypeScript
- Routing: React Router
- State Management: Redux Toolkit
- Styling: Tailwind CSS
- UI Components: Shadcn UI (using Radix UI primitives)
- Forms: React Hook Form
- Schema Validation: Zod
- Linting: ESLint
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
-
Clone the repository:
git clone https://github.com/your-username/liteshelf-library-frontend.git cd liteshelf-library-frontend -
Install dependencies:
npm install
In the project directory, you can run the following commands:
-
npm run dev: Runs the app in development mode. Open http://localhost:5173 to view it in the browser. -
npm run build: Builds the app for production to thedistfolder. -
npm run preview: Runs a local server to preview the app in production mode. -
npm run lint: Runs ESLint to check for linting errors.
The project follows a standard Vite + React project structure, with key directories organized as follows:
/src
├───components/ # Shared and reusable UI components
├───hooks/ # Custom React hooks
├───lib/ # Utility functions, schemas, etc.
├───pages/ # Page components corresponding to routes
├───redux/ # Redux store and RTK Query API
├───routes/ # Route configuration
└───types/ # TypeScript type definitions
Contributions, issues, and feature requests are welcome. Feel free to check the issues page if you want to contribute.
This project is licensed under the MIT License. See the LICENSE file for details.