INTODUCTION
The Cloth Store Management System is a software application designed to
streamline and automate the daily operations of a clothing retail store.
Traditional manual processes in stores—such as tracking inventory, managing
sales, handling billing, and maintaining customer records—are often time-
consuming and error-prone. This system addresses those challenges by providing
an efficient digital platform where all core operations are handled quickly,
accurately, and with minimal human effort.
By automating inventory management, billing, sales tracking, and report
generation, the system helps store owners save time, reduce operational costs,
and enhance customer satisfaction. It offers a user-friendly interface with
modules for product management, stock control, transaction processing, and
real-time reporting. This solution is ideal for small to medium-sized cloth stores
looking to modernize their business processes, improve accuracy, and make
better business decisions based on reliable data.
OBJECTIVE
Applying Programming Knowledge to Real-World Problems
Utilizing Modern Software Tools
Implementing Object-Oriented Programming (OOP) Principles
Developing Effective Procedural Code
Demonstrating Breadth of Knowledge in Computer Science
Conducting Research and Writing Scholarly Reports
PROPOSED SYSTEM
The proposed system is a computerized application developed in C++ to
manage cloth store operations. It provides modules for inventory management,
sales tracking, billing, and reporting.
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
The System Development Life Cycle (SDLC) is a structured approach to
software development that ensures efficiency and quality. It consists of several
phases: Initiation, where the need for a system is identified; Planning, which
defines project scope and resources; Design, where system architecture is
created; Development, where coding takes place; Testing, to ensure
functionality and security; Implementation, where the system is deployed; and
Maintenance, which involves updates and bug fixes. Each phase ensures the
project progresses smoothly, reducing risks and improving outcomes.
PHASES OF SDLC:
Planning
Requirement Analysis
System Design
Implementation
Integration and Testing
Deployment
Maintenance
SCDP (Software Conceptual Design Process):
SCDP involves creating conceptual diagrams and flowcharts of the software to
visualize modules, data flow, and logic before development begins.
Pictorial Representation of SDLC:
Diagram of SDLC cycle with arrows showing flow between each phase: Planning
→ Analysis → Design → Development → Testing → Implementation → Maintenance
Planning Phase:
Design Phase:
Create data flow diagrams, module architecture, and UI layouts.
Requirement Analysis Phase:
Collect and analyze the business needs from store staff and management.
Development Phase:
Actual coding in C++ is done based on the design.
Integration and T esting Phase:
Modules are integrated and tested for bugs and compatibility.
Implementation Phase:
The system is deployed in the store environment.
Operation and Maintenance Phase:
Regular updates, error fixing, and user support are provided.
TESTING METHODS
Software testing methods are traditionally divided into black box testing and
white box testing. These two approaches are used to describe the point of view
that a test engineer takes when designing test cases.
BLACK BOX TESTING:
Testing the functionality of the application without looking into internal code
structure. Example: Testing the billing system output.
SPECIFICATION BASED TESTING:
Testing done according to the software specifications and requirements to verify
expected behaviour.
ADVANTAGES AND DIADVANTAGES
Advantages:
* Faster billing process
* Improved inventory tracking
* Better customer satisfaction
* Automated reporting
Disadvantages:
* Initial setup cost
* Requires training for staff
* Depends on computer system reliability
WHITE BOX TESTING
Testing the internal logic and code of the program. Example: Checking loop
conditions in inventory updates.
CODING
import json
import os
DATA_FILE = '[Link]'
# Load data
def load_data():
if not [Link](DATA_FILE):
return []
with open(DATA_FILE, 'r') as f:
return [Link](f)
# Save Data
def save_data(data):
with open(DATA_FILE, 'w') as f:
[Link](data, f, indent=4)
# Display all stock
def display_stock(data):
if not data:
print("\nNo stock available.\n")
return
print("\nPRODUCT NAME\tQUANTITY\tPRICE")
print("-" * 40)
for item in data:
print(f"{item['name']}\t\t{item['quantity']}\t\t{item['price']}")
# Add new product
def add_product(data):
n= int(input('enter the number of products to be added:'))
for i in range(n+1):
name = input("Enter product name: ").strip()
quantity = int(input("Enter quantity: "))
price = float(input("Enter price: "))
[Link]({'name': name, 'quantity': quantity, 'price': price})
save_data(data)
print("Product added.")
# Refill stock
def refill_stock(data):
name = input("Enter product name to refill: ").strip()
found = False
for item in data:
if item['name'].lower() == [Link]():
qty = int(input("Enter quantity to add: "))
item['quantity'] += qty
found = True
break
if found:
save_data(data)
print("Stock updated.")
else:
print("Product not found.")
# Withdraw stock
def withdraw_product(data):
name = input("Enter product name to purchase: ").strip()
for item in data:
if item['name'].lower() == [Link]():
qty = int(input("Enter quantity to purchase: "))
if item['quantity'] >= qty:
item['quantity'] -= qty
save_data(data)
print("Purchase successful.")
else:
print("Insufficient stock.")
return
print("Product not found.")
# Remove product
def remove_product(data):
name = input("Enter product name to delete: ").strip()
new_data = [item for item in data if item['name'].lower() != [Link]()]
if len(new_data) != len(data):
save_data(new_data)
print("Product removed.")
else:
print("Product not found.")
# Menus
def dealer_menu():
data = load_data()
while True:
print("\n--- Dealer Menu ---")
print("1. Add Product")
print("2. Display Stock")
print("3. Refill Stock")
print("4. Remove Product")
print("5. Back to Main Menu")
choice = input("Enter choice: ")
if choice == '1':
add_product(data)
elif choice == '2':
display_stock(data)
elif choice == '3':
refill_stock(data)
elif choice == '4':
remove_product(data)
elif choice == '5':
break
else:
print("Invalid choice.")
def customer_menu():
data = load_data()
while True:
print("\n--- Customer Menu ---")
print("1. Purchase Product")
print("2. Display Stock")
print("3. Exit")
choice = input("Enter choice: ")
if choice == '1':
withdraw_product(data)
elif choice == '2':
display_stock(data)
elif choice == '3':
break
else:
print("Invalid choice.")
def employee_menu():
data = load_data()
while True:
print("\n--- Employee Menu ---")
print("1. Display Stock")
print("2. Refill Stock")
print("3. Exit")
choice = input("Enter choice: ")
if choice == '1':
display_stock(data)
elif choice == '2':
refill_stock(data)
elif choice == '3':
break
else:
print("Invalid choice.")
# Main
def main():
while True:
print("\n==== Cloth Store Management ====")
print("1. Dealer")
print("2. Customer")
print("3. Employee")
print("4. Exit")
role = input("Enter your role: "
if role == '1':
password = input("Enter dealer password: ")
if password == 'dealer':
dealer_menu()
else:
print("Wrong password!")
elif role == '2':
customer_menu()
elif role == '3':
password = input("Enter employee password: ")
if password == 'emp':
employee_menu()
else:
print("Wrong password!")
elif role == '4':
print ("Exiting...")
break
else:
print ("Invalid input.")
if _name_ == "_main_":
main ()
OUTPUT