Skip to content

A concise but comprehensive description highlighting: Technology stack (Java 22, JavaFX, MySQL) Educational purpose (OOP principles, design patterns) Key features (authentication, GUI, database integration)

Notifications You must be signed in to change notification settings

Tanh-Ng/LibraryManagementApp-OOP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibraryManagementApp-OOP

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.

Documentation

  • Features

  • Database Design

  • 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

Project Structure

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

Prerequisites

  • Java 22 or higher
  • Maven
  • MySQL Server

Setup Instructions

  1. Clone the repository:

    git clone <repo-url>
    cd LibraryManagementApp-OOP
  2. Configure the Database:

    • Create a MySQL database named libraryappdb.
    • Update src/main/resources/db.properties with 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).
  3. Build the Project:

    mvn clean install
  4. Run the Application:

    mvn javafx:run

    Or run the LibraryManagementApp main class from your IDE.

Running Tests

  • Unit tests are located in src/test/java/com/librarymanagement/.
  • To run all tests:
    mvn test

Main Technologies Used

  • Java 22
  • JavaFX 23
  • MySQL
  • Maven
  • JUnit 4/5

UI Structure

  • FXML files for user and admin screens are in src/main/resources/FXML/
  • Stylesheets are in src/main/resources/css/

Authors

License

This project is for educational purposes.

About

A concise but comprehensive description highlighting: Technology stack (Java 22, JavaFX, MySQL) Educational purpose (OOP principles, design patterns) Key features (authentication, GUI, database integration)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •