You are developing a virtual system for a store where customers can add items to their cart and checkout when they finished. This is a menu driven program used by interacting with the console terminal.
The Store has its name, location and a list of items that are in stock. At the start, the store is stocked from a database file which contains a description of items that are sold in the store. The items that are stocked each have a unique ID, unique name, a price and the quantity at the store. The ID and name of an item should not change. When attempting to stock an item with an ID or name that already exists, you should throw an exception with the appropriate name and description.
Items can have different types with additional details unique to the type of the item. Clothing items have a size, color and a gender which can be male, female or all. Computers at the store have a brand, a CPU model, some amount of RAM and storage. Food items have calories and whether they are fresh or not. Beverages have a volume and whether they are alcoholic or not. Additionally, the store has asked you to come up with an additional item type it can sell.
Customers use shopping carts to do shopping. The cart belongs to and has reference to the store and it has its own list of items with quantities in the cart. Customers can add items to the cart by taking it from the store or remove items from the cart by returning it to the store. When this happens, the quantity of the items in the store and the cart is decremented and incremented appropriately. When the customer tries to add an item which doesn’t exist or out of stock, you should have an exception. The customer should also have the option to completely empty their cart.
Finally, at check out you should print the bill to a file with the list of items and the final amount to be paid. If the customer wants to check out with no items in their cart, there is no need for a bill.
● Use noun extraction to design a solution for the task. Create classes with attributes and methods and represent them in a detailed UML Class diagram.
● Implement the solution you designed in Java using concepts of file handling, collections, exception handling and inheritance.
● Create a Driver class and function that stocks the store from a file, creates a cart object and show a menu for the user to do shopping with the options of:
○ List Items in Store
○ List Items in Cart
○ Add Item to Cart
○ Remove Item from Cart
○ Empty Cart
● Fully document your code using comments
● Show test cases of your program in the form of screenshots
Example of an input file for stocking the Store
Clothing 1001 Shirt 19.95 100 18 Blue Male
Clothing 1002 Shoes 10.25 20 13 Black All
Computer 1003 LenovoThinkpad 1050.99 2 i7-10610U 8 512
Food 1004 GreenPeas 5.95 60 1170 false
Food 1005 Lettuce 2.50 15 80 true
Beverage 1006 Cola 3.25 50 0.5 false
Such a cheap price for your free time and healthy sleep
All online transactions are done using all major Credit Cards or Electronic Check through PayPal. These are safe, secure, and efficient online payment methods.