In the following documentation I have added my approach to complete this project
- customer can buy plants
- Nursery Manager can manage plants
- maintain an inventory of plants
- Generate monthly sales and inventory reports
- Customer: Interacts with nursery to browse and purchase plants
- Manager: Manages plant data, inventory, and generates reports
- Plant: Represents the entity sold by the nursery
- customer can getPlantList, buy a plant
- manager can add, remove or update a plant data
- monthly reports can be generated
Classes: Plant (base class for indoor or outdoor plants), Customer, Manager, Order, Inventory, Report Generator
Inheritance (Is-a) Plant -> IndoorPlant, OutdoorPlant Association (Has-a)
- Manager -> Inventory, ReportGenerator Dependency (Uses)
- Customer uses Plant and Order
- Manager interacts with Plant, ReportGenerator, Inventory
properties: name (String), price (float), category (String) methods: displayInfo(): Display plant details.
properties: email (String), orderHistory (List) methods: viewPlants(): View available plants. placeOrder(): Purchase plants. viewOrderHistory(): View past orders.
properties: date (Date), amount (float), customerId (String), plantList (List) methods: placeOrder(): Save and process an order.
properties: name (String), email (String) methods: addPlant(): Add a new plant to inventory. removePlant(): Remove a plant from inventory. updatePlant(): Update details of a plant.
properties: plantList (List), totalOutdoorPlants (int), totalIndoorPlants (int) methods: getIndoorPlants(): Retrieve indoor plants from inventory. getOutdoorPlants(): Retrieve outdoor plants from inventory.
methods: generateSalesReport(): Generate a report of total sales. generateInventoryReport(): Generate a report of inventory status.
properties: lightRequirement (String), temperature (String) methods: displayInfo(): Display plant details.
properties: wateringFrequency (String) methods: displayInfo(): Display plant details.


