ShelfWise

Modern Library Management System

Spring Boot 3.3React 19MySQL 8DockerTypeScriptJava 21Spring Security 6Tailwind CSS

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

Backend
  • • Spring Boot 3.3.13
  • • Spring Security 6.x
  • • Spring Data JPA
  • • MySQL 8.x
  • • JWT (JJWT)
  • • MapStruct
Frontend
  • • React 19
  • • TypeScript 5.8
  • • Tailwind CSS 4
  • • shadcn/ui
  • • TanStack Query
  • • Zustand
DevOps
  • • 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