A Spring Boot 3.4.5 application for managing a library system with H2 Database, Thymeleaf, and Spring Security. Supports three roles (Owner, Admin, User) and provides a full set of CRUD operations with filtering, searching, and sorting.
-
Java 17
-
Spring Boot 3.4.5
-
Spring Web
-
Spring Data JPA
-
Spring Security
-
Thymeleaf
-
H2 Database (in-memory)
-
Full unrestricted access
-
Manage admins and users
-
Configure application-level settings
-
Access to all resources
-
Manage library resources (Authors, Books, Readers, Publishers, Genres, Borrow Book, Stats)
-
Cannot manage owners or other admins
-
Cannot change system-level settings
-
Access to the same tabs as admin (Authors, Books, Readers, Publishers, Genres, Borrow Book, Stats)
-
Limited rights depending on business rules (e.g., can borrow books, view stats, possibly edit own records)
Every tab supports the same set of operations:
-
CRUD (Create, Read, Update, Delete)
-
Search (by text fields such as names, titles, etc.)
-
Sort (by attributes like date, name, author, etc.)
-
Filter (by genre, publisher, status, etc.)
-
Authors
-
Books
-
Readers
-
Publishers
-
Genres
-
Borrow Book
-
Stats
-
Application: http://localhost:8080
-
H2 Console: http://localhost:8080/h2-console
-
JDBC URL: jdbc:h2:mem:testdb
-
User: sa
-
Password: 12
The application uses Spring Security for authentication. Users must log in to access the library resources based on their roles (Owner, Admin, User).
View of the owner with full access to all tabs and the ability to manage admins and users.
View of the admin with full access to library resources, but without the ability to manage other Admins.
View of the user with access to authors, books, readers, publishers, genres, the ability to borrow books, and view statistics.
Library statistics overview.
