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

Core Features

  1. Dashboard: View all current inventory in a tabular format.
  2. Add/Remove: Dynamically manage the product list.
  3. Sales Engine: Deduct stock when an item is sold; throw error if stock is 0.
  4. Supplier Tracking: Use a HashMap to link Products to their Suppliers.
  5. Search & Filter: Find products by ID or Category.

Development Steps

  1. Define an abstract Item class.
  2. Inherit Electronics and Food classes from Item.
  3. Create a WarehouseManager class that contains the ArrayList.
  4. Implement the Scanner logic for a text-based user interface.
  5. 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%