Console application for managing inventory using JAVA with CRUD operations, activity logging, and CSV export features
- Product Management: Add, view, update, delete, and search products
- Perishable Items: Hndling products with expiration dates
- Activity Logging: Logs of all changes
- CSV Export: Export activity logs as Excel-compatible format
- Category Analytics: Automatic product counting and grouping
- Inventory Valuation: Real-time calculation of total inventory worth
- Smart Validations:
- Preventing negative values
- Duplicate ID's
- Confirmation when deleting
- Warnings about low stock
- Products (Parent Class): Core product attributes and methods
- PerishableProducts (Child class): Extends Products + has expiry date
- InventoryManager: Handles CRUD operation
- ActivityLog: Tracks + exports all inventory changes
- Main: User interface and menu system
- Custom Exceptions: ItemNotFound, StorageFull, InvalidInput
- Encapsulation: All data protected with private fields
- Inheritance: Code reuse through parent-child relationships
- Polymorphism: Method overriding for specialized behavior
- Add Product
- View All Products
- Update Product
- Delete Product
- Search Product by ID
- Category Amount
- View Activity Log
- Export Activity Log to CSV
- View Total Inventory Value
- Exit
- InputMismatchException: Handles invalid input types
- ItemNotFound: Thrown when product ID doesn't exist
- StorageFull: Thrown when inventory reaches maximum capacity (50 items)
- InvalidInput: Custom validation errors
Team
- [Nazla Chy]-[20240004973]
- [Elham Abbasi]-[20240005699]
- [Negin Mirzajani]-[20240004675]