{"id":29353779,"url":"https://github.com/karim-ashraf1/quantum-bookstore","last_synced_at":"2025-07-09T02:09:26.496Z","repository":{"id":303654352,"uuid":"1016043969","full_name":"Karim-Ashraf1/Quantum-Bookstore","owner":"Karim-Ashraf1","description":"Bookstore-system using java with oop","archived":false,"fork":false,"pushed_at":"2025-07-08T17:54:29.000Z","size":227,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-08T18:59:12.567Z","etag":null,"topics":["java","oop"],"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/Karim-Ashraf1.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,"zenodo":null}},"created_at":"2025-07-08T12:05:46.000Z","updated_at":"2025-07-08T17:54:32.000Z","dependencies_parsed_at":"2025-07-08T18:59:14.980Z","dependency_job_id":"921b4edd-5b6d-4095-961b-40fb5d2becfb","html_url":"https://github.com/Karim-Ashraf1/Quantum-Bookstore","commit_stats":null,"previous_names":["karim-ashraf1/quantum-bookstore"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Karim-Ashraf1/Quantum-Bookstore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karim-Ashraf1%2FQuantum-Bookstore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karim-Ashraf1%2FQuantum-Bookstore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karim-Ashraf1%2FQuantum-Bookstore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karim-Ashraf1%2FQuantum-Bookstore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Karim-Ashraf1","download_url":"https://codeload.github.com/Karim-Ashraf1/Quantum-Bookstore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karim-Ashraf1%2FQuantum-Bookstore/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264379216,"owners_count":23598824,"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":["java","oop"],"created_at":"2025-07-09T02:09:23.939Z","updated_at":"2025-07-09T02:09:26.480Z","avatar_url":"https://github.com/Karim-Ashraf1.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bookstore Inventory System\n\n## Project Overview\n\nThis is a Java-based bookstore inventory management system that simulates book purchasing functionality. The system handles different types of books (physical, digital, and showcase), inventory management, customer purchasing, and automated shipping/email services. It demonstrates object-oriented programming principles with a clean separation of concerns across different packages.\n\n## Features\n\n- **Multi-type Book Management**: Support for different book types (Paperbooks, EBooks, Showcase books)\n- **Inventory Operations**: Add, remove, and purchase books with quantity validation\n- **Customer Balance Tracking**: Purchase validation with balance checking\n- **Automated Services**: Shipping for physical books and email delivery for digital books\n- **Business Logic Enforcement**: Showcase book restrictions and stock validation\n- **Maintenance Features**: Automatic removal of outdated books based on publication year\n\n## Project Structure\n\n```\nsrc/\n├── book/\n│   ├── Book.java             # Base book class with common properties\n│   ├── EBook.java            # Digital book implementation\n│   ├── Paperbook.java        # Physical book implementation\n│   └── Showcasebook.java     # Display-only book implementation\n├── inventory/\n│   ├── Inventory.java        # Main inventory management system\n│   └── InventoryItem.java    # Individual inventory item wrapper\n├── main/\n│   └── Main.java             # Entry point with comprehensive test cases\n└── services/\n    ├── ShippingService.java  # Physical book shipping service\n    └── MailService.java      # Digital book delivery service\n```\n\n## How to Run\n\n### Prerequisites\n\n- Java Development Kit (JDK) 8 or higher\n- Command line interface (Terminal/Command Prompt)\n\n### Compilation and Execution\n\n1. **Navigate to the project root directory:**\n\n   ```bash\n   cd \"path/to/Quantum-Bookstore\"\n   ```\n\n2. **Compile all Java files:**\n\n   ```bash\n   javac -d out src/**/*.java\n   ```\n\n3. **Run the application:**\n   ```bash\n   java -cp out src.main.Main\n   ```\n\n## Expected Output\n\nWhen you run the application, you should see output similar to:\n\n```\nTest 1: Adding books to inventory\nBooks added :) Total unique items: 4\nCurrent inventory:\n- Java Programming (ISBN: 692-1213448867) - Quantity: 10 - Price: $45.0\n- How to enter fawry as an intern (ISBN: 285-1111111111) - Quantity: 5 - Price: $30.0\n- Software Architecture from zero to hero (ISBN: 535-9999991268) - Quantity: 1 - Price: $0.0\n- Advanced oop (ISBN: 123-0000000001) - Quantity: 3 - Price: $20.0\n-----------------------------\n\nTest 2: Adding more amount of an existing book\nBefore: Paper book quantity = 10\nAfter: Paper book quantity = 15\nAdding more books successful :)\n-----------------------------\n\nTest 3: Successful book purchase\nQuantum book store - Shipping book: Java Programming to Cairo, Egypt\nPurchase successful :) Total paid: 90.0\nPurchase successful :) Total paid: 90.0\nRemaining stock: 13\n-----------------------------\n\nTest 4: Failed book purchase - Insufficient balance\nInsufficient balance :( Required: 585.0, Available: 10.0\n-----------------------------\n\nTest 5: Successful book removal\nBefore removal - eBook stock: 5\nRemoval successful :)\nAfter removal - eBook stock: 3\n-----------------------------\n\nTest 6: Failed book removal - Not enough stock\nThe quantity you need is not availiable :(\n-----------------------------\n\nTest 7: Failed book purchase - Showcase book\nShowcase books cannot be purchased :(\n-----------------------------\n\nTest 8: Remove outdated books (published before 2020)\nRemoved \"Advanced oop\" (Published: 2000) as it is outdated.\nAfter removal - Total items: 3\nOutdated books removed successfully :)\n-----------------------------\n\nAll tests complete :)\nThanks Fawry team for this great task :)\n```\n\n_This project demonstrates fundamental bookstore inventory management functionality using core Java concepts and object-oriented programming principles._\n\n## Screenshots\n\n### Test Execution - Part 1\n![Test Execution Screenshot 1](screenshots/screenshot1.png)\n\n### Test Execution - Part 2\n![Test Execution Screenshot 2](screenshots/screenshot2.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarim-ashraf1%2Fquantum-bookstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarim-ashraf1%2Fquantum-bookstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarim-ashraf1%2Fquantum-bookstore/lists"}