1. User
Attributes
- username : String
- password : String
Methods
- login() : Boolean
- logout() : void
2. Admin (inherits User)
Attributes
- adminId : int
Methods
- addProduct(product : Product) : void
- updateProduct(product : Product) : void
- deleteProduct(productId : int) : void
- manageCategory(category : Category) : void
- verifyOrder(orderId : int) : void
3. Customer (inherits User)
Attributes
- customerId : int
- name : String
- email : String
- deliveryAddress : String
Methods
- register() : Boolean
- browseCategories() : void
- checkout() : void
4. Category
Attributes
- categoryId : int
- categoryName : String
Methods
- getProducts() : List
5. Product
Attributes
- productId : int
- productName : String
- price : double
- stockQuantity : int
Methods
- updateStock(quantity : int) : void
6. ShoppingCart
Attributes
- cartId : int
- totalPrice : double
Methods
- addProduct(product : Product, qty : int) : void
- removeProduct(productId : int) : void
- clearCart() : void
7. Order
Attributes
- orderId : int
- orderDate : Date
- status : String
- totalAmount : double
Methods
- selectPaymentMethod(method : String) : void
- placeOrder() : void
8. OrderItem
Attributes
- itemId : int
- quantity : int
- priceAtPurchase : double
Methods
- calculateSubtotal() : double
9. Payment
Attributes
- paymentId : int
- paymentMethod : String
- paymentStatus : String
Methods
- processPayment() : Boolean
10. Shipment / Delivery
Attributes
- shipmentId : int
- deliveryAddress : String
- dispatchDate : Date
Methods
- updateStatus() : void
Relationships
- Admin and Customer inherit from User.
- Admin manages Category and Order.
- Customer owns ShoppingCart.
- Category contains Products.
- Order contains OrderItems.
- OrderItem references Product.
- Order is linked with Payment.
- Order is linked with Shipment/Delivery.
- ShoppingCart contains Products.
This is the complete solution represented by the diagram in your file.

