- Introduction
- Features
- UML Diagram
- Technologies Used
- Setup and Installation
- Usage
- Screenshots
- Contributing
- License
This project meticulously implements a robust Library Management System (LMS) in Java, leveraging the power of Maven for streamlined build automation and Swing for an intuitive graphical user interface (GUI). Its primary objective is to significantly enhance library operations by automating essential book and member management tasks, fostering efficiency and accuracy.
- Meticulous Book Addition: Effortlessly create new book entries, meticulously capturing crucial details such as title, author, ISBN (International Standard Book Number), publication date, and current availability status.
- Streamlined Book Updates: Modify existing book information and availability status with ease, ensuring the library catalog remains up-to-date.
- Efficient Book Removal: When books are no longer part of the library's collection, seamlessly remove them from the catalog, maintaining a streamlined database.
- Effortless Member Registration: Welcome new members by adding their personal details, including name and unique membership ID, to the system.
- Member Profile Updates: Maintain accurate member information by facilitating edits to profiles as needed.
- Clear Borrowing History Tracking: Employ the system to meticulously track borrowed books and their corresponding due dates for each member, enabling efficient overdue management.
- Streamlined Book Borrowing: Empower members to effortlessly check out desired books, recording borrowing dates for accurate tracking.
- Efficient Book Returns: Process book returns and update availability status in the system.
The diagram should depict the following classes and relationships:
- Book: Attributes include title, author, ISBN, publication date, and availability status.
- Member: Attributes include name, membership ID, contact information, and a collection of borrowed books (
List<Book>
). - Library: Methods include
addBook()
,removeBook()
,registerMember()
,borrowBook()
, andreturnBook()
. - Relationships:
- Association: The
Library
class has a one-to-many relationship with bothBook
andMember
. - Aggregation: A
Member
can have multiple borrowedBooks
.
- Association: The
- Java with Maven
- MySQL Database
- Swing for GUI
- SLF4J for logging
- JUnit for testing
- Lombok for reducing boilerplate code
To set up the project on your local machine, follow the steps below:
-
Clone the Repository:
git clone https://github.com/KhaledAshrafH/LMS.git cd LibraryManagementSystem
-
Set Up MySQL Database:
- Create a new database named
lms_db
. - Execute the SQL scripts to create the necessary tables for books, members, and borrowings.
- Create a new database named
-
Configure the Database Connection:
- Update the MAIN class in
com.lms
with your MySQL database credentials.
- Update the MAIN class in
-
Build the Project:
mvn clean install
-
Run the Application:
mvn exec:java -Dexec.mainClass="com.lms.Main"
After launching, the application will present a GUI with tabs for managing books, members, and borrowing/returning books. Utilize the respective tab functionalities for the operations you wish to perform.
Contributions are welcome! If you'd like to contribute, please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE file for details.