Programming Assignment Unit 2
E-commerce System with Java
1. Introduction
This assignment implements a comprehensive E-commerce System using Java that provides
online shopping functionality for customers. The program demonstrates practical application of
object-oriented programming principles, package organization, and encapsulation in Java. The
system enables customers to browse products, manage shopping carts, and place orders while
showcasing robust Java programming techniques with proper input validation and error
handling.
The implementation emphasizes proper software architecture through the use of Java packages
and import statements, ensuring clean separation of concerns and maintainable code structure.
The system is organized into logical packages that encapsulate related functionality,
with [Link] containing core business entities and [Link] specializing
in order management operations.
Key features of the system include product catalog management, customer account handling,
shopping cart operations, order processing, and comprehensive inventory tracking. The program
demonstrates sophisticated understanding of Java encapsulation through appropriate access
modifiers, getter/setter methods, and business logic validation.
This e-commerce solution provides a foundation for scalable online retail operations while
serving as an exemplary demonstration of Java package organization, class design, and object-
oriented programming best practices in a real-world business context.
2. Program Code
i. Program Structure in eclipse
Screenshot 1: Eclipse Package Explorer showing project structure with proper package
organization
ii. Product Class implementation
Screenshot 2: Product class implementation showing attributes, constructors, and business
methods
iii. Customer Class implementation
Screenshot 3: Customer class with shopping cart management and order placement
iv. Order Class implementation
Screenshot 4: Order class implementation in [Link] package
v. Main Class implementation
Screenshot 5: Main class demonstrating package usage and system functionality
3. Code Explanation
Program Structure and Design:
The E-commerce System is implemented using proper Java package organization with clear
separation of concerns. The system follows object-oriented principles with encapsulation at its
core, using private fields with public getters/setters to control access to class attributes.
Key Components:
a) Package Organization:
[Link] package contains core business classes (Product, Customer)
[Link] package specializes in order management functionality
Proper use of import statements to access classes across packages
b) Product Class:
Represents products with attributes: productID, name, price, description, stockQuantity
Includes business logic for stock management (increaseStock, decreaseStock)
Implements input validation for price and stock quantity
Overrides toString(), equals(), and hashCode() for proper object handling
c) Customer Class:
Manages customer information and shopping cart operations
Implements shopping cart functionality: add/remove products, calculate totals
Handles order placement with automatic stock updates
Includes cart viewing and management capabilities
d) Order Class:
Manages order lifecycle from creation to delivery
Implements order status tracking with predefined constants
Generates comprehensive order summaries
Includes business logic for order cancellation and stock restoration
Input Validation Implementation:
Price validation to prevent negative values
Stock quantity validation ensuring non-negative inventory
Empty cart validation before order placement
Order status validation with predefined valid states
Null checks for product and customer references
Programming Concepts Demonstrated:
Package and Import Statements: Proper organization using Java packages
Encapsulation: Private fields with public accessors and mutators
Exception Handling: Comprehensive input validation with meaningful error messages
Collections Framework: ArrayList for shopping cart and product management
Object-Oriented Design: Clear separation of responsibilities between classes
Modularity: Independent, reusable components with well-defined interfaces
Data Hiding: Restricted access to internal class implementation details
Business Logic Implementation:
Automatic order ID generation using timestamp and customer ID
Real-time stock synchronization during order processing
Shopping cart total calculation
Order status workflow management (PENDING → CONFIRMED → SHIPPED →
DELIVERED)
Inventory management with stock increase/decrease operations
4. Program Execution
The program executes in a structured sequence demonstrating all e-commerce functionalities:
Execution Steps:
1. Compile all Java files in the package structure
2. Run the Main class to start the system
Program Flow:
System initialization with welcome message
Product catalog creation and display
Customer registration and profile setup
Shopping cart operations (add/remove products)
Order placement with automatic stock updates
Order status management and tracking
Comprehensive error handling demonstration
Final inventory status reporting
Output Includes:
Product information with stock levels
Customer profiles and cart contents
Order summaries with status tracking
Real-time inventory updates
Validation error messages
Business logic execution results
The program successfully demonstrates package integration, encapsulation, and all required e-
commerce operations through clear, sequential output.
Complete Program Output Demonstrating E-commerce System Workflow
Screenshot 6: Complete program execution output showing system initialization, product
creation, customer registration, shopping cart operations, order processing, status management,
error handling, and final inventory status in a single integrated view
6. Conclusion
The E-commerce System successfully demonstrates comprehensive online shopping
functionality through practical Java implementation with proper package organization. The
program showcases efficient business logic processing using object-oriented principles,
providing robust product management, shopping cart operations, and order processing
capabilities.
The implementation effectively meets all assignment requirements through:
Package Organization Success:
Clear separation of concerns using [Link] and [Link] packages
Proper use of import statements for cross-package class access
Logical grouping of related functionality for maintainability
Encapsulation Achievement:
Comprehensive data hiding through private class attributes
Controlled access via public getter and setter methods
Business logic encapsulation within appropriate classes
Protection of internal implementation details
Functionality Implementation:
Complete product lifecycle management with inventory tracking
Robust shopping cart operations including add, remove, and total calculation
Comprehensive order processing with status management
Effective error handling and input validation throughout the system
The use of modular programming principles results in maintainable, readable, and extensible
code that demonstrates sophisticated understanding of Java package organization and object-
oriented design patterns. The system provides a solid foundation that could be extended with
additional features such as payment processing, user authentication, or database integration.
This assignment successfully illustrates the importance of proper software architecture in
building scalable business applications while meeting all specified technical requirements for
package usage, encapsulation, and e-commerce functionality.
References
Oracle. (2023). Java SE 17 Documentation - Packages. Retrieved from
[Link]
Oracle. (2023). Java SE 17 Documentation - Collections Framework. Retrieved from
[Link]
[Link]
Oracle. (2023). Java SE 17 Documentation - Object-Oriented Programming Concepts. Retrieved
from [Link]
Eclipse Foundation. (2023). Eclipse IDE User Guide. Retrieved from
[Link]