LibroNova is a Java SE (17+) desktop application designed for the internal management of a library network.
It allows administrators and assistants to efficiently manage books, users, members, loans, returns, reports, and fines using a modal graphical interface with JOptionPane.
The system applies:
- Layered architecture (
controller,service,dao,model) - JDBC persistence (MySQL/MariaDB)
- Custom exceptions and validations
- CSV exportation and configuration via
.propertiesfiles - JUnit 5 testing
- Transaction control and logging
🔹 1. Unzip the Project Folder
Right-click on it → “Open with Live Server” (if you have the extension installed). Or simply double-click the file to open it in your web browser.
┣ 📂 app # Main entry point of the application ┣ 📂 config # Database connection and configuration ┣ 📂 model # Domain entities (User, Book, Loan, Member, etc.) ┣ 📂 repository # DAO classes for database interaction ┣ 📂 service # Business logic and validations ┣ 📂 controller # User interaction and control logic ┗ 📂 util # Utilities and helper classes ┣ 📂 test # JUnit 5 unit tests
LibroNova seeks to resolve various operational problems such as:
- Duplicate books caused by manual ISBN errors.
- Inventory inconsistencies and book availability issues.
- Lack of user and role management.
- Incomplete loan/return records.
- Data loss due to the use of non-synchronized spreadsheets and physical forms.
This system centralizes and automates all processes under a unified, reliable, and maintainable structure.
- Java SE / 17+
- Maven / 3.6+
- MySQL / MariaDB 8.0+
- JUnit / 5.x
- PlantUML / (for diagrams)
- IDE / IntelliJ IDEA / with Java support
- Register new books with:
isbn,titulo,autor,categoria,ejemplaresTotales,ejemplaresDisponibles,precioReferencia,isActivo,createdAt. - Validate unique ISBN before registration.
- Edit, activate/deactivate, and filter books by category or author.
- Display results in formatted text tables using
JOptionPane.
- Login with role validation (ADMIN / ASISTENTE).
- CRUD operations for users.
- Apply Decorator pattern to assign default properties:
role: "ASISTENTE",estado: "ACTIVO",createdAt: now(). - Log simulated HTTP requests (
GET,POST,PATCH,DELETE) in console.
- Modal menus:
- Catalog
- Members
- Users
- Loans
- Exports
- Clear dialogs for success/error.
- Helpers for aligned tables and
[ACTIVO]/[INACTIVO]tags.
- DAO interfaces and JDBC implementations using
PreparedStatement. try-with-resourcesfor automatic resource closure.- Transaction control:
- Loan →
setAutoCommit(false)→ insert → update stock →commit()/rollback() - Return → update → calculate fine → restore stock →
commit()
- Loan →
- Full CRUD operations integrated with exception handling.
- Configuration file
config.properties:db.url= jdbc:mysql://168.119.183.3:3307/Andrew3 db.username=root db.password=g0tIFJEQsKHm5$34Pxu1 diasPrestamo=7 multaPorDia=1500
Developed by: Andres Felipe Marin Patiño / Software Developer / Berneslee




