Complex Computing Problem (CCP) Report
E-Commerce Order Processing System
Group Members: Ibad Farooqui(70339) Izma Amin(70332) Maham Khalid()
Program: BS (Cyber)
Course: Data Structures & Algorithms
CLO: CLO-3
Mapped SDG: Complex Problem Solving
Project Type: Backend Simulation
Language: Java
1. Objective
The objective of this project is to design and implement a backend simulation
of a simplified E-Commerce Order Processing System using core data
structures. The system demonstrates how different data structures work
together to manage users, products, orders, recommendations, and invoice
generation efficiently.
This project aims to strengthen understanding of arrays, queues, linked
lists, binary search trees, and graphs by applying them to a real-world
inspired problem. The system processes user requests sequentially, manages
inventory dynamically, and generates invoices by mapping users to their
respective orders.
2. Scope
In Scope
User account management
Product inventory handling
Order placement and processing
Product recommendation logic
Invoice generation
Data structure–based backend simulation
Out of Scope
Graphical user interface (GUI)
Online payment systems
Database integration
Real-time networking
The system is entirely memory-based and intended for academic
learning purposes.
3. Problem Statement
Design a backend simulation of a simplified e-commerce order processing
system that handles user management, product catalog, order processing,
and invoice generation using core data structures.
The system must implement the following operations:
User accounts stored using an Array
Pending orders handled using a Queue
Inventory management using a Linked List
Product recommendations using a Binary Search Tree (BST)
Order-user mapping and invoice generation using a Graph
4. System Description
The system is designed using a modular Java structure, where each
module represents a core data structure. The logic of the provided code is
preserved, while the structure is organized to clearly reflect DSA concepts.
4.1 User Management (Array)
User accounts are stored in a fixed-size or dynamically managed array
structure. Each user is identified using a unique ID and name. The array
allows:
Fast indexed access
Efficient storage of registered users
Easy removal and update operations
4.2 Order Processing (Queue)
Orders are processed using a queue to ensure First-In-First-Out (FIFO)
behavior. This guarantees fair and sequential handling of user orders. Each
placed order is enqueued and processed in the order it was received.
4.3 Inventory Management (Linked List)
The product inventory is managed using a linked list. This structure allows:
Dynamic insertion of products
Efficient traversal
Flexible memory usage without resizing
Each node represents a product containing ID, name, and price.
4.4 Product Recommendation (Binary Search
Tree)
A Binary Search Tree (BST) is used to recommend and display products.
Products are inserted based on ID or price, enabling:
In-order traversal for sorted display
Efficient searching
Logical recommendation based on traversal results
4.5 Invoice Generation (Graph)
A graph is used to model the relationship between users and their orders.
Each user node is connected to the products they ordered. This structure
allows:
Efficient user-order mapping
Accurate invoice generation
Clear relationship representation
5. Required Features Implementation
Feature Implementation
Add User Inserted into array
Inserted into linked
Add Product
list
Enqueued in order
Place Order
queue
Generate
Graph traversal
Invoice
Suggest
BST traversal
Products
Display
In-order BST traversal
Products
Graph and array
Remove User
update
6. UML Diagrams (Explanation)
6.1 Class Diagram
The class diagram includes:
User
Product
Order
Inventory
RecommendationTree
OrderQueue
Graph
MainSystem
Each class contains attributes and methods aligned with its data structure
role.
6.2 Sequence Diagram
The sequence diagram shows:
1. User registration
2. Product insertion
3. Order placement
4. Queue processing
5. Graph-based invoice generation
7. User Guide
Running the Program
1. Compile the Java files
2. Run the main class
3. Enter commands through the console
Sample Commands
ADD_USER 1 Hamza
ADD_PRODUCT P1 Shampoo 250
PLACE_ORDER 1 P1
INVOICE 1
SUGGEST_PRODUCTS
DISPLAY_PRODUCTS
8. Test Cases & Output
Sample Input
ADD_USER 1 Hamza
ADD_PRODUCT P1 Shampoo 250
PLACE_ORDER 1 P1
INVOICE 1
Sample Output
User Hamza added with ID 1
Product P1 added to inventory
Order from user 1 for product P1 placed
Invoice generated for user 1: P1 - 250 PKR
9. CCP Justification
WP1 – Depth of Analysis
The system requires analyzing the interaction between multiple data
structures. For example, order placement affects both the queue and the
graph, while inventory and recommendations depend on linked lists and BST
traversal.
WP2 – Depth of Knowledge
The project demonstrates integrated use of arrays, queues, linked lists,
graphs, and BSTs within a single system, fulfilling the requirements of
complex problem solving.
10. Conclusion
This project successfully demonstrates how multiple data structures can be
combined to solve a real-world inspired problem. By structuring the system
around core DSA concepts, the project enhances understanding of data
handling, processing flow, and inter-dependency between structures. The
implementation fulfills all CCP requirements and provides a solid foundation
for further system expansion.