{"id":23767568,"url":"https://github.com/bachiriy/librarymanager","last_synced_at":"2025-10-06T21:45:00.697Z","repository":{"id":258980159,"uuid":"849356624","full_name":"bachiriy/LibraryManager","owner":"bachiriy","description":"LibraryManager is a project that involves the development of a console-based application in Java 8 to manage a municipal library's inventory and loan system.","archived":false,"fork":false,"pushed_at":"2024-12-18T13:16:55.000Z","size":139,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-09T04:40:32.124Z","etag":null,"topics":["java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bachiriy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-08-29T12:59:21.000Z","updated_at":"2024-12-18T14:24:03.000Z","dependencies_parsed_at":"2025-01-01T00:45:58.632Z","dependency_job_id":"4962914f-7e99-4f92-b1d7-c194e6328480","html_url":"https://github.com/bachiriy/LibraryManager","commit_stats":null,"previous_names":["bachiriy/librarymanager-javaconsoleapp","bachiriy/librarymanager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bachiriy/LibraryManager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bachiriy%2FLibraryManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bachiriy%2FLibraryManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bachiriy%2FLibraryManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bachiriy%2FLibraryManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bachiriy","download_url":"https://codeload.github.com/bachiriy/LibraryManager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bachiriy%2FLibraryManager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278686637,"owners_count":26028325,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["java"],"created_at":"2025-01-01T00:46:05.846Z","updated_at":"2025-10-06T21:45:00.679Z","avatar_url":"https://github.com/bachiriy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibraryManager | Java Console Application for Library Management\n\n## Project Overview\n\nThis project involves the development of a console-based application in Java 8 to manage a municipal library's inventory and loan system. The goal is to automate library tasks, such as adding, borrowing, returning, and searching for books and magazines, using a layered architecture.\n\n## Project Structure\n\n### Layered Architecture\n\n- **Presentation Layer:**\n  - `ConsoleUI`: Handles the user interface.\n\n- **Business Layer:**\n  - `Document` (Abstract Class): Represents a generic library document.\n  - `Book` (Class): Represents a book, inherits from `Document`.\n  - `Magazine` (Class): Represents a magazine, inherits from `Document`.\n  - `Library` (Class): Manages the collection of documents.\n\n- **Utility Layer:**\n  - `DateUtils`: Manages date-related operations.\n\n### Class Details\n\n- **Document (Abstract Class):**\n  - Attributes: `id`, `titre`, `auteur`, `datePublication`, `nombreDePages`\n  - Abstract Methods: `emprunter()`, `retourner()`, `afficherDetails()`\n\n- **Book (Inherits from Document):**\n  - Additional Attribute: `isbn`\n  - Implements abstract methods.\n\n- **Magazine (Inherits from Document):**\n  - Additional Attribute: `numero`\n  - Implements abstract methods.\n\n## Key Features\n\n- **Document Management:**\n  - Add a document (book or magazine)\n  - Borrow a document\n  - Return a document\n  - Display all documents\n  - Search for a document\n\n- **Technical Specifications:**\n  - Use `ArrayList` for document storage\n  - Implement a quick search with `HashMap\u003cString, Document\u003e`\n  - Integrate Java Time API for date management\n  - Apply lambda expressions\n\n- **User Interface:**\n  - Interactive menu with options to:\n    1. Add a document\n    2. Borrow a document\n    3. Return a document\n    4. Display all documents\n    5. Search for a document\n    6. Quit\n\n## Project Constraints\n\n- Data persists only in memory until the application is closed.\n\n\n## Installation and Usage\n\n### Prerequisites\n\n- Java 8\n- Git\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/JavaAura/med_elBachiri_S1_B1_gestionBiblio.git\n\n2. Navigate to the project directory:\n    ```bash\n    cd app\n\n3. Compile the project and Run the application:\n    ```bash\n    javac -d bin src/**/*.java\n\n    java -cp bin ConsoleUI\n\n3. Or simply run the command: \n    ```bash\n      \u0026 'C:\\Program Files\\Java\\jdk-22\\bin\\java.exe' '--enable-preview' '-XX:+ShowCodeDetailsInExceptionMessages' '-cp' 'C:\\Users\\moham\\AppData\\Roaming\\Code\\User\\workspaceStorage\\8fa2ba723ae0dfee18a1dc5e309b25ea\\redhat.java\\jdt_ws\\LibraryManager-JavaConsoleApp_69e95885\\bin' 'Main'\n\n### Usage\n- Follow the interactive console menu to manage the library's inventory.\n\n\n\n#### License\n- This project is licensed under the MIT License - see the LICENSE file for details.\n\n---\n\nThis `README.md` file outlines the project structure, features, and installation instructions in a clear and organized manner. \nEnjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbachiriy%2Flibrarymanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbachiriy%2Flibrarymanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbachiriy%2Flibrarymanager/lists"}