This is a Java Swing desktop application designed to manage inventory, user accounts, and sales transactions for a retail store. It features role-based access control and uses a modern look-and-feel library for its UI.
The application follows a modular structure, separating the UI from the core logic.
app/
): Contains all the Swing forms (.java
and .form
files), including main frames like Login.java
, CheckoutPanel.java
, and InventoryManagement.java
, as well as various dialogs for adding/editing data.libs/core/
): Contains the business logic and data management classes.Accounts.java
& Inventory.java
: Manage collections of User and Product objects, respectively.AppStateManager.java
: A utility class that handles the loading and saving of the application’s state (inventory, accounts, cart) by reading/writing serialized objects to .dat
files.Cart.java
, Product.java
, User.java
: Model classes representing the main entities of the system.libs/errors/
): Defines custom exception classes like InvalidUserPassword
and OverdrawError
for robust error handling..dat
files using Java Object Serialization, ensuring data is retained between application runs.