{"id":15024169,"url":"https://github.com/khaledashrafh/lms","last_synced_at":"2026-01-06T16:13:16.641Z","repository":{"id":256977724,"uuid":"856589023","full_name":"KhaledAshrafH/LMS","owner":"KhaledAshrafH","description":"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 effi","archived":false,"fork":false,"pushed_at":"2024-09-13T15:47:43.000Z","size":279,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-20T18:48:17.123Z","etag":null,"topics":["book","clean-architecture","clean-code","database","java","junit","library-management","library-management-system","lms","lombok","maven","mysql","mysql-database","native-data","oop-principles","pom","slf4j","swing","swing-gui","uml"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KhaledAshrafH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-12T20:51:18.000Z","updated_at":"2024-09-13T16:52:11.000Z","dependencies_parsed_at":"2024-09-14T06:41:13.415Z","dependency_job_id":"6db3c9f0-dd55-4662-be7d-7983b0190d03","html_url":"https://github.com/KhaledAshrafH/LMS","commit_stats":null,"previous_names":["khaledashrafh/lms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhaledAshrafH%2FLMS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhaledAshrafH%2FLMS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhaledAshrafH%2FLMS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KhaledAshrafH%2FLMS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KhaledAshrafH","download_url":"https://codeload.github.com/KhaledAshrafH/LMS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239933049,"owners_count":19720725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["book","clean-architecture","clean-code","database","java","junit","library-management","library-management-system","lms","lombok","maven","mysql","mysql-database","native-data","oop-principles","pom","slf4j","swing","swing-gui","uml"],"created_at":"2024-09-24T19:59:53.641Z","updated_at":"2026-01-06T16:13:16.612Z","avatar_url":"https://github.com/KhaledAshrafH.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Library Management System (LMS)\n\n## Table of Contents\n- [Introduction](#introduction)\n- [Features](#key-functionalities)\n  - [Book Management](#book-management)\n  - [Member Management](#member-management)\n  - [Borrowing and Returning Books](#borrowing-and-returning)\n- [UML Diagram](#uml-diagram)\n- [Technologies Used](#technologies-used)\n- [Setup and Installation](#setup-and-installation)\n- [Usage](#usage)\n- [Screenshots](#screenshots)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Introduction\nThis 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.\n\n## Key Functionalities:\n\n### Book Management:\n  - **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.\n  - **Streamlined Book Updates:** Modify existing book information and availability status with ease, ensuring the library catalog remains up-to-date.\n  - **Efficient Book Removal:** When books are no longer part of the library's collection, seamlessly remove them from the catalog, maintaining a streamlined database.\n\n### Member Management:\n  - **Effortless Member Registration:** Welcome new members by adding their personal details, including name and unique membership ID, to the system.\n  - **Member Profile Updates:** Maintain accurate member information by facilitating edits to profiles as needed.\n  - **Clear Borrowing History Tracking:** Employ the system to meticulously track borrowed books and their corresponding due dates for each member, enabling efficient overdue management.\n\n### Borrowing and Returning:\n  - **Streamlined Book Borrowing:** Empower members to effortlessly check out desired books, recording borrowing dates for accurate tracking.\n  - **Efficient Book Returns:** Process book returns and update availability status in the system.\n\n## UML Diagram\n\n \u003cbr\u003e\n\u003cp align=\"center\" margin=\"auto\"\u003e\n    \u003ckbd\u003e\n\u003cimg align=\"center\" \n            src=\"https://github.com/KhaledAshrafH/LMS/blob/main/images/UML_Diagram.jpg\"\n            alt=\"KhaledAshrafH\"  height=\"300\" style=\"border-radius: 20px;\"/\u003e\n    \u003c/kbd\u003e\n  \u003c/p\u003e\n \u003ch1 align=\"center\"\u003e\u003c/h1\u003e\n\n\nThe diagram should depict the following classes and relationships:\n\n* **Book:** Attributes include title, author, ISBN, publication date, and availability status.\n* **Member:** Attributes include name, membership ID, contact information, and a collection of borrowed books (`List\u003cBook\u003e`).\n* **Library:** Methods include `addBook()`, `removeBook()`, `registerMember()`, `borrowBook()`, and `returnBook()`.\n* Relationships:\n    * Association: The `Library` class has a one-to-many relationship with both `Book` and `Member`.\n    * Aggregation: A `Member` can have multiple borrowed `Books`.\n\n            \n## Technologies Used\n- Java with Maven\n- MySQL Database\n- Swing for GUI\n- SLF4J for logging\n- JUnit for testing\n- Lombok for reducing boilerplate code\n\n\n## Setup and Installation\nTo set up the project on your local machine, follow the steps below:\n\n1. Clone the Repository:\n    ```bash\n    git clone https://github.com/KhaledAshrafH/LMS.git\n    cd LibraryManagementSystem\n    ```\n\n2. Set Up MySQL Database:\n    - Create a new database named `lms_db`.\n    - Execute the SQL scripts to create the necessary tables for books, members, and borrowings.\n\n3. Configure the Database Connection:\n    - Update the MAIN class in `com.lms` with your MySQL database credentials.\n\n4. Build the Project:\n    ```bash\n    mvn clean install\n    ```\n\n5. Run the Application:\n    ```bash\n    mvn exec:java -Dexec.mainClass=\"com.lms.Main\"\n    ```\n\n## Usage\nAfter 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.\n\n## Screenshots\n### Library Management System GUI\n \u003cbr\u003e\n\u003cp align=\"center\" margin=\"auto\"\u003e\n    \u003ckbd\u003e\n\u003cimg align=\"center\" \n            src=\"https://github.com/KhaledAshrafH/LMS/blob/main/images/GUI1.jpg\"\n            alt=\"KhaledAshrafH\"  height=\"500\" style=\"border-radius: 20px;\"/\u003e\n    \u003c/kbd\u003e\n  \u003c/p\u003e\n \u003ch1 align=\"center\"\u003e\u003c/h1\u003e\n\n  \u003cbr\u003e\n\u003cp align=\"center\" margin=\"auto\"\u003e\n    \u003ckbd\u003e\n\u003cimg align=\"center\" \n            src=\"https://github.com/KhaledAshrafH/LMS/blob/main/images/GUI2.jpg\"\n            alt=\"KhaledAshrafH\"  height=\"500\" style=\"border-radius: 20px;\"/\u003e\n    \u003c/kbd\u003e\n  \u003c/p\u003e\n \u003ch1 align=\"center\"\u003e\u003c/h1\u003e\n\n## Contributing\nContributions are welcome! If you'd like to contribute, please fork the repository and create a pull request with your changes.\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhaledashrafh%2Flms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhaledashrafh%2Flms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhaledashrafh%2Flms/lists"}