Project Report
Smart Inventory Management System
1. Introduction
This project titled Smart Inventory Management System is developed to demonstrate the core
principles of Object-Oriented Programming (OOP) using Java. The aim is to provide a basic
inventory management solution where an Admin can securely manage various product categories
like Clothing, Electronics, and Groceries. The system allows product addition, deletion, and
viewing—while ensuring that all data is persisted using file handling techniques.
2. Project Objectives
To implement key OOP principles such as abstraction, inheritance, encapsulation, and
polymorphism.
To design an organized system where different types of products can be added and
managed.
To provide role-based access (Admin/User).
To maintain product data through file storage using Java I/O.
3. Tools and Technologies
Programming Language: Java
Development Environment: Apache Netbeans
Persistence: Text File (products.txt)
Operating System: Windows 10
4. System Architecture
Admin Class
The Admin class is responsible for handling admin information and login
functionality.
It uses a fixed password and validates input before allowing access to inventory
operations.
Product Class (Abstract)
This is the base class for all products and is declared as abstract.
It contains shared properties such as id, name, price, quantity, and category.
It defines an abstract method print() which is implemented by each subclass.
Clothing Product Class
Inherits from Product.
Adds specific fields: size and color.
Overrides print() to display clothing details.
Electronic Product Class
Inherits from Product.
Adds specific fields: brand and warrantyPeriod.
Overrides print() to display electronic product details.
Grocery Product Class
Inherits from Product.
Adds specific fields: expirationDate and packaging.
Overrides print() to show grocery product details.
5. InventoryManager Class
Manages product data, provides admin/user menus, and handles file operations for saving/loading
inventory.
Admin Menu: Add, View All, View by Category, Delete
User Menu: View All, View by Category
File Handling: saveToFile() and loadFromFile()
Categories: 1 = Grocery, 2 = Electronic, 3 = Clothing
6. Main Class
Acts as the entry point for the program.
Displays a main menu for selecting either Admin or User role.
Loads saved product data at startup and saves updates on exit.
7. OOP Concepts Used
OOP Principle Implementation in Project
Encapsulation Private fields with public getters/setters
Inheritance Subclasses (Clothing, Grocery, Electronic)
extend Product
Polymorphism Overridden print() methods in each product
subclass
Abstraction Product class declared abstract with abstract
print()
8. Sample Output (Console)
Welcome to Inventory System:
1. Admin
2. User
3. Exit
> Enter password: 123
Admin Menu:
1. Add Product
2. View All Products
3. View Products by Category
4. Delete Product by Category
5. Back
Sample product display:
[G123] | Grocery | Milk | Rs 250.00 | Qty: 10 | Exp: 2025-08-01 | Pack: TetraPak
[E112] | Electronic | LED TV | Rs 45000.00 | Qty: 4 | Brand: Samsung | Warranty: 2Years
[C301] | Clothing | T-Shirt | Rs 899.00 | Qty: 20 | Size: M | Color: Blue
9. Conclusion
This project provided hands-on experience with the fundamental principles of Object-Oriented
Programming in Java. It showed how a structured system can be built to manage real-world tasks
like inventory handling, and how different Java concepts can be tied together in a practical
application. Features like inheritance, polymorphism, encapsulation, file handling, and user
interaction were integrated to build a fully working console-based system.