Final Course Project: Inventory Management System
🚀 Project Overview
You will build a professional Inventory Management System for a retail warehouse. This project integrates Java's strong typing, deep Object-Oriented principles, Exception Handling for robust logic, and the Collections Framework for data storage.
Problem Statement
A warehouse needs to track its products, suppliers, and stock levels. The system should allow adding new items, updating quantities when sales happen, and generating a "Low Stock" alert for items below a certain threshold.
Project Objectives
- Use an
ArrayList<Product>to manage items. - Implement
Encapsulationto protect product pricing and stock counts. - Use
Inheritanceto distinguish between Perishable and Non-perishable goods. - Handle
Custom Exceptionsfor scenarios like "Out of Stock".
Core Features
- Dashboard: View all current inventory in a tabular format.
- Add/Remove: Dynamically manage the product list.
- Sales Engine: Deduct stock when an item is sold; throw error if stock is 0.
- Supplier Tracking: Use a
HashMapto link Products to their Suppliers. - Search & Filter: Find products by ID or Category.
Development Steps
- Define an abstract
Itemclass. - Inherit
ElectronicsandFoodclasses fromItem. - Create a
WarehouseManagerclass that contains theArrayList. - Implement the
Scannerlogic for a text-based user interface. - Write a method that iterates through the list and prints alerts for items with quantity < 5.
Evaluation Criteria
| Criteria | Weight |
|---|---|
| Correct use of Inheritance and Polymorphism | 30% |
| Effective management of Collections (ArrayList/HashMap) | 25% |
| Robust Exception Handling | 20% |
| Code structure and Java naming conventions | 25% |