School Project Notice:
This project was developed as part of a school assignment to help students become familiar with object-oriented programming (OOP) concepts and common software design patterns. The application demonstrates the use of OOP principles such as encapsulation, inheritance, and polymorphism, as well as the application of design patterns in a real-world context.
A JavaFX-based Library Management System that allows users and administrators to manage books, users, and borrowing activities. Built with Java 22, JavaFX, and MySQL, following object-oriented programming principles.
-
User authentication (login)
-
User dashboard for browsing and searching books
-
Book details and categorization
-
Borrow and return management
-
Admin dashboard for managing users, books, and borrow records
-
Responsive UI with JavaFX and FXML
-
Persistent storage with MySQL database
LibraryManagementApp-OOP/
├── src/
│ ├── main/
│ │ ├── java/com/librarymanagement/...
│ │ └── resources/
│ │ ├── FXML/ (UI layouts)
│ │ ├── css/ (stylesheets)
│ │ ├── icons/ (icons/images)
│ │ └── db.properties (database config)
│ └── test/
│ └── java/com/librarymanagement/...
├── pom.xml
└── README.md
- Java 22 or higher
- Maven
- MySQL Server
-
Clone the repository:
git clone <repo-url> cd LibraryManagementApp-OOP
-
Configure the Database:
- Create a MySQL database named
libraryappdb. - Update
src/main/resources/db.propertieswith your MySQL credentials:db.url=jdbc:mysql://<host>/<database> db.username=<your-username> db.password=<your-password>
- Import the required schema and initial data (if provided).
- Create a MySQL database named
-
Build the Project:
mvn clean install
-
Run the Application:
mvn javafx:run
Or run the
LibraryManagementAppmain class from your IDE.
- Unit tests are located in
src/test/java/com/librarymanagement/. - To run all tests:
mvn test
- Java 22
- JavaFX 23
- MySQL
- Maven
- JUnit 4/5
- FXML files for user and admin screens are in
src/main/resources/FXML/ - Stylesheets are in
src/main/resources/css/
This project is for educational purposes.