A modern web-based library management system that helps libraries manage their collections and allows users to browse, borrow, and reserve books efficiently. Built with Next.js 15, TypeScript, and Supabase, featuring a clean and responsive UI powered by shadcn/ui components.
- Browse and search books by title, author, or ISBN
- Advanced filtering by categories
- Real-time book availability tracking
- Cover image management system
- Detailed book information pages
- Secure email/password authentication via Supabase
- Role-based access control
- Protected routes and API endpoints
- User profile management
- Session handling
- Intuitive book checkout process
- Automated due date management
- Book reservation queue
- Return processing
- Late return notifications
- Borrowing history tracking
- Responsive design for all devices
- Dark mode support
- Real-time updates
- Interactive toast notifications
- Loading states and error handling
- Clean and intuitive interface
- shadcn/ui - UI Components
- React Hook Form - Form handling
- Zod - Schema validation
- date-fns - Date manipulation
- ESLint - Code linting
- Prettier - Code formatting
- Clone the repository
git clone https://github.com/ChanMeng666/library-management-system.git
cd library-management-system
- Install dependencies
npm install
- Set up environment variables
Create a
.env.local
file in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
- Run the development server
npm run dev
Open http://localhost:3000 with your browser to see the result.
βββ src/
β βββ app/ # Next.js app router pages
β βββ components/ # Reusable UI components
β βββ contexts/ # React contexts
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions and configurations
β βββ types/ # TypeScript type definitions
βββ public/ # Static assets
βββ ...configuration files
We welcome contributions to improve the Library Management System! Here's how you can help:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure you follow our coding standards and include appropriate tests.
See the AGPL-3.0 license file for details.
Chan Meng
- LinkedIn: chanmeng666
- GitHub: ChanMeng666
If you found this project helpful, give it a βοΈ. Every star motivates us to keep improving!