This is a console-based Inventory Management System implemented in Java. It allows users to manage products, track stock, create customer orders, and view sales history.
The project demonstrates Object-Oriented Programming (OOP) concepts, Low-Level Design (LLD), and clean modular code organization.
- Add new products with ID, name, price, quantity, and category
- Search products by name, partial name, category, or price range
- List all products
- Sort products (by price or quantity in ascending/descending order)
- Group products by category
- View only available products (quantity > 0)
- Check for low stock items with a custom threshold
- Increase or decrease stock of existing products
- Error handling for invalid stock operations (e.g., decreasing below 0)
- Create a new order
- Add items (with quantity check)
- Confirm an order (updates inventory automatically)
- View all orders with order details and total price
- Uses
try-catchfor input mismatches - Clear error messages for invalid operations
com.ims
βββ Main.java # Entry point with menu-driven UI
β
βββ model
β βββ Product.java # Product entity
|
βββ observer # Observer pattern for Alerts
| βββ ConsoleAlertService.java
| βββ EmailAlertService.java
| βββ StockObserver.java
β
βββ service
β βββ Inventory.java # Singleton inventory manager
β
βββ order
βββ Order.java # Handles customer orders
βββ OrderItem.java # Represents product + quantity in an order