- Java 20
- Spring Boot 3.1.0
- Spring MVC, Thymeleaf 3.1.1
- Spring Security
- Spring Data, JPA, Hibernate 6.1.7
- Postgresql 15, Liquibase 4.17.2
- Spring Email, Kafka
- JUnit 5, Mockito, MockMVC
- Tomcat, Lombok, Log4j2, Maven, Git
- Spring Tools Suite 4.17.2
- user changes interface locale
- user logs in and gets authorized
- librarian registers new customer, customer receives notification by email
- customer browses and reads book reviews
- customer selects books to order
- books filtered out by author, title, ISBN, language, country of origin, cover, etc
- books sorted by author, title, ISBN, language, country, year of publication in ascending or descending order
- book list divided in pages, first, last, next, previous page may be retrieved
- customer marks selected books and forms request, notification sent by email
- librarian reviews request, checks if books available, approves or rejects requested books, notification sent
- librarian transfers approved books to customer, notification sent
- librarian fetches list of customer's books
- librarian finds holder of the book
- customer returns books, librarian checks for damage and writes out compensation claim, notification sent
- customer composes and publishes book review
- librarian adds and edits book descriptions
- librarian retrieves data on most popular book categories by time, request rate
- librarian retrieves statistical data about customers
- librarian retrieves data about selected customer on time spent, request rate, reviews
- manager registers new librarian or manager
- manager validates claims and authorizes compensation sum
- user changes personal data