This is a book management system for a library. Its main objective is to combine knowledge of object-oriented programming with good design pattern practices in Java. One of its strengths was the application of the entire graphical interface through JavaFX.
This is the second screen, resulting from the button to start the application. Giving the user the opportunity to click on different menu items for management:
The system has 5 main menus for management:
- Books: where you can list the books that have been added and are available, add books and remove them;
- Loan Transactions: where the user or library administrator can start a loan and return a loan;
- Reports: here you can see which books in the library are currently on loan and which books have passed their loan term and what the current fine rate is in relation to this;
- Users: you can list, create, remove and see the entire loan history for each user individually;
- Back: Returning to the home page.
See below the presentation of the screens for each button in the menu item:
Where you can list the books that have been added and are available. In addition to being able to search by title, author or publication date:

Add all the properties a book can have:

Remove a book by passing its ID securely:

Registering the functionalities focused on loan and return transactions of a book, passing only one or more than one book. The business rule in this case is: each user, per loan, can borrow 5 books at a time:
The administrator or user is asked to identify the ID that will start the loan, the date the loan will take place and select a maximum of 5 books. In addition to being able to search for the title of the book you want to borrow:

When clicking the book return button, you must enter the ID of the borrower, the return date and which book you want to return. If there is no loan record in the system, a non-loan message is displayed:

- mvn install & mvn exec:java -pl app
- plugins/extensions/src/main/java/application/management/plugins/...
- plugins/<here>
├───app
│ └───src
│ └───main
│ ├───java
│ │ └───application
│ │ └───management
│ │ ├───shell
│ │ └───utils
│ └───resources
├───interfaces
│ └───src
│ └───main
│ └───java
│ └───application
│ └───management
│ └───interfaces
└───plugins
└───extensions
└───src
├───main
│ └───java
│ └───application
│ └───management
│ └───plugins
└───resources
- The system has other icons that can be used. Can be found along the way:
- app/src/main/resources/...
- Customize them by changing in UIController.java in the showIntroScreen method the line:
- Image image = new Image(getClass().getResource("/icon.png").toExternalForm());

