This is an inventory management system to help small businesses track their product stock levels. The system allows users to add/remove products in their inventory, monitor quantities, update inventory, and view totals. Users will be able to save their inventory data and reload it when they restart the application, so that no data is lost between sessions.
The application will be particularly useful for small business owners, retail managers, and entrepreneurs who need a simple yet effective way to manage their product. This project interests me because it combines business with software design. As someone interested in the business and the consulting side of computer science and I think inventory management has a big impact on a company's operations and profitability.
- As a user, I want to be able to add a new product to my inventory collection and specify the product's name and initial quantity
- As a user, I want to be able to view a list of all products in my inventory with their current quantities
- As a user, I want to be able to manually update a product's quantity in case of restocking or inventory adjustments
- As a user, I want to be able to remove a product entirely from my inventory
- As a user, I want to be able to view summary statistics such as total number of products and total items in inventory
- As a user, I want to be able to save my inventory to file (if I so choose)
- As a user, I want to be able to load my inventory from file (if I so choose)
- You can view the panel that displays the Products that have already been added to the Inventory by looking at the left side of the main window. Every product added or loaded will appear here
- You can generate the first required action related to the user story “adding multiple Products to an Inventory” by clicking the “Add Product” button at the bottom of the window. A popup will ask you for a product name and stock amount
- You can generate the second required action related to the user story "Removing Products from an Inventory” by clicking the “Remove Product” button at the bottom of the window. A popup will ask you which product to remove, and the item will disappear from both the Inventory and the list
- You can locate my visual component by adding a product. After you enter the product information, a popup window will appear showing an image of a check mark to confirm that the product was added.
- You can save the state of my application by clicking the “Save” button at the bottom of the window
- You can reload the state of my application by clicking the “Load” button at the bottom of the window
If Products are removed or added, the following is printed to the console after the window of the GUI is closed, to show which events were performed:
- If a product is removed -> Removed product: [nameOfProuct] from inventory"
- If a product is added -> "Added product: [nameOfProuct] with stock [amountOfProduct]"
- If Inventory is loaded -> "Loaded inventory from file"
- If Inventory is Saved -> "Saved inventory to file"
If I had more time, I would introduce another class to reduce the coupling of the InventoryGUI with the Inventory, JsonReader, and JsonWriter classes. The GUI is responsible for both handling user interactions and directly managing loading and saving functionality. I would refactor the structure to separate these responsibilities by introducing a class like InventoryController for example between the GUI and the model. The controller would have all model updates and code pertaining to it and that would leave InventoryGUI responsible only for UI presentation.