How cyrusmccollim/simplepos works
SimplePOS is a Java Swing grocery point-of-sale desktop app. A cashier selects products, enters quantity or weight, reviews the cart, confirms a sale, and the application records it and produces a receipt; saved transactions can later be reviewed in History. Product search, settings, and receipt printing/saving are supporting workflows. The graph follows the documented capabilities and sampled startup, state, database, and receipt code; several UI panels and transaction persistence implementations were not sampled, so their internal wiring is shown only where documented or supported by the tree.
Main entry points: POSApplication.java POS coordinator · ApplicationState.java Application state · DatabaseManager.java Database manager · ReceiptDialog.java Receipt view
Components 22
Product catalog
- Product catalog
src/main/java/pos/ui/panels/ProductsPanel.java - Product access
src/main/java/pos/db/ProductDAO.java - Product model
src/main/java/pos/model/Product.java
Checkout
- Pending item entry
src/main/java/pos/ui/components/CurrentItemPanel.java - Quantity keypad
src/main/java/pos/ui/components/NumberPad.java - Cart state
src/main/java/pos/model/Cart.java - Cart summary
src/main/java/pos/ui/components/CartSummaryPanel.java - Checkout review
src/main/java/pos/ui/panels/CheckoutPanel.java
Sales records
- Transaction history
src/main/java/pos/ui/panels/HistoryPanel.java - Transaction model
src/main/java/pos/model/Transaction.java - Transaction access
src/main/java/pos/db/TransactionDAO.java - Receipt view
src/main/java/pos/ui/dialogs/ReceiptDialog.java - PDF receipt generator
src/main/java/pos/util/PdfReceiptGenerator.java
Application services
- Application entry
src/main/java/pos/Main.java - POS coordinator
src/main/java/pos/app/POSApplication.java - Application state
src/main/java/pos/app/ApplicationState.java - Theme manager
src/main/java/pos/app/ThemeManager.java - Settings and config
src/main/java/pos/util/Config.java - Database manager
src/main/java/pos/db/DatabaseManager.java
Other components
- Cashier
- Local SQLite database
- System printer
Connections 34
- Cashier → Product catalog: selects products
- Cashier → Pending item entry: enters amounts
- Cashier → Checkout review: reviews cart
- Cashier → POS coordinator: confirms sale
- Application entry → Theme manager: applies theme
- Application entry → POS coordinator: starts UI
- POS coordinator → Database manager: initializes schema
- POS coordinator → Application state: initializes state
- POS coordinator → Product catalog: creates view
- POS coordinator → Checkout review: creates view
- POS coordinator → Transaction history: creates view
- POS coordinator → Application state: handles pending item
- POS coordinator → Transaction access: saves sale
- POS coordinator → PDF receipt generator: generates receipt
- POS coordinator → Receipt view: shows receipt
- Product catalog → Product access: searches catalog
- Product access → Database manager: uses connection
- Product access → Product model: builds products
- Pending item entry → Application state: updates pending item
- Pending item entry → POS coordinator: confirms item
- Quantity keypad → Application state: updates input
- Application state → Cart state: maintains cart
- Cart summary → Application state: observes cart
- Checkout review → Application state: reads cart
- Transaction history → Transaction access: loads history
- Transaction access → Database manager: uses connection
- Transaction access → Transaction model: loads and saves
- Receipt view → Transaction model: formats receipt
- Receipt view → System printer: prints receipt
- Receipt view → Settings and config: reads store details
- PDF receipt generator → Transaction model: reads sale details
- Database manager → Settings and config: reads database path
- Database manager → Local SQLite database: opens database
- POS coordinator → Settings and config: reads store settings