The problem description is given as follows:
CheapSkate is a home appliances dealer and has outlets in Australia and New Zealand. They sell home theatres and accessories amongst other items and would like to have an application that handles localized order processing.
Costing is done in US Dollars which selling price is in local currency where Forex rates are obtained from a trusted ExchangeRateProvider. Each regional office determines their base%profit%margin that is applied to all products and accessories.
There are three categories of home theatre systems: entry, intermediate and cinematic with varying level of components. Each regional store determines its configuration of these systems that are given below, along with each components cost (USD):
NOTE: All systems come with a standard Sony Bluray Player (Cost price 80 USD).
The following additional components provided can be added to an order (along with cost in USD):
1) HDMI Cables (5)
2) Universal remote (200)
3) Wireless headphones (120)
When purchased with a home theatre system, a discount applies to the additional components only, that is equal to 10% times the number of components up to a maximum of 30%.
The customer can place an order and add the above components to the configuration (s)he chooses at the same time. Customer should be able to view the component listing to select the product (s) wants. Assume that Australia branch stores this list as an ArrayList while New Zealand stores it as an Array. Customers can add new product(s) and component(s) and also remove the ones already in the cart. Once the customer is satisfied with the cart, (s)he finalizes%the order and proceeds to making the payment. The customer pays through credit card (no need to go into detailed implementation of this issue). The order is then placed and noted as Ordered, then the item is prepared for delivery and noted as Ready%for%delivery, subsequently it is Delivered.
Your Task is to:
a) Provide a working Java application (with Client and Test Cases) that contains an implementation of the system. This need not be user interaction based. Hence, it is sufficient to demonstrate a scenario where Customer A orders an intermediate system from Australia and adds 2 HDMI Cables and one universal remote to the options, Customer B orders a Cinematic system from New Zealand and adds 4 HDMI Cables, one universal remote and one set of headphones to the options, and Customer C orders just one HDMI Cable from the Australian store (don’t judge C, (s)he’s on a tight budget). The customer should then be able to make a payment for the item, check the status of the item and get a notification when (s)he receives the item. User cannot make payment before finalizing an item.
b) Provide a description of your design as a document that may contain class diagrams (highly recommended) and sequence diagrams (if you wish). Please keep description of your system limited to a maximum of 500 words/ (normal margin, singleKspace, 12Ksize Arial font, 2 pages).
Please note there will be a 4$marks$penalty for not providing an acceptable report.
Please remember this is a substantially openKended problem and should be addressed with creativity (modify or add new features, but do not remove required features).