ShelfWise is a full-featured, production-ready library management system designed specifically for offline-first operations. Built with React and Spring Boot, it provides a seamless experience for managing books, members, and transactions with role-based access control and comprehensive reporting capabilities.
Authentication & Security
- JWT-based Auth with HttpOnly cookies
- RBAC (Member, Admin, Super Admin)
- Secure Spring Security implementation
- Refresh Token mechanism
Book Management
- Complete CRUD operations
- Bulk Book Upload via JSON
- Advanced Search with pagination
- Custom Barcode Generation
Transaction Management
- Issue, Return, and Renew workflows
- Automatic late fee calculation
- Overdue transaction alerts
- Transaction receipt generation
Reports & Export
- PDF Report Generation (Inventory, Users)
- CSV Export/Import functionality
- Printable Barcode Sheets
- Real-time Admin Dashboard
Deep Dive
Secure Authentication Flow
The system employs a robust security model where the server validates credentials and generates JWT tokens. Access and refresh tokens are stored in HttpOnly cookies to prevent XSS attacks. The client automatically refreshes tokens when needed, ensuring a seamless user experience while maintaining high security.
Barcode Sheet Generation
A sophisticated feature allowing admins to search and select books, choose from 18+ barcode standards (CODE128, EAN13, etc.), customize layout dimensions, and generate printable PDF sheets directly from the browser.
Technical Architecture
- • Spring Boot 3.3.13
- • Spring Security 6.x
- • Spring Data JPA
- • MySQL 8.x
- • JWT (JJWT)
- • MapStruct
- • React 19
- • TypeScript 5.8
- • Tailwind CSS 4
- • shadcn/ui
- • TanStack Query
- • Zustand
- • Docker (Multi-arch)
- • GitHub Actions CI/CD
- • Maven & pnpm
- • Docker Hub Registry
Project Structure
shelfwise/ ├── api/ # Spring Boot Backend │ ├── src/main/java/ # Controllers, Services, Models │ └── src/main/resources/ # Config, Static Assets ├── web/ # React Frontend │ ├── src/components/ # UI, Auth, Dashboard Components │ ├── src/lib/ # Utilities │ └── src/store/ # Zustand State ├── docker-compose.prod.yml # Production Config └── Dockerfile # Multi-stage Build