How sadatrafsanjani/point-of-sales works
This JavaFX desktop application supports inventory administration and point-of-sale transactions: staff sign in, manage products and related records, record purchases, sell items, and review invoices and reports. The POS flow selects products, builds a cart, accepts payment, records the invoice and sales, and updates stock. Dashboard charts summarize invoices and product stock; PDF invoice generation is a separate documented capability. The sampled controllers show model calls, but most model-to-DAO wiring was not sampled, so those links are omitted. MySQL and Hibernate are documented technologies.
Main entry points: model Domain models · LoginController.java Login · PosController.java POS cart and payment · InvoiceController.java Invoice checkout
Components 19
Desktop application
- Application entry
src/main/java/com/rafsan/inventory/MainApp.java - Login
src/main/java/com/rafsan/inventory/controller/login/LoginController.java - Dashboard charts
src/main/java/com/rafsan/inventory/controller/admin/AdminController.java
Inventory operations
- Product and category
src/main/java/com/rafsan/inventory/controller/product - Supplier management
src/main/java/com/rafsan/inventory/controller/supplier - Employee management
src/main/java/com/rafsan/inventory/controller/employee - Purchase records
src/main/java/com/rafsan/inventory/controller/purchase
Sales and reporting
- POS cart and payment
src/main/java/com/rafsan/inventory/controller/pos/PosController.java - Invoice checkout
src/main/java/com/rafsan/inventory/controller/pos/InvoiceController.java - Sale confirmation
src/main/java/com/rafsan/inventory/controller/pos/ConfirmController.java - Sales records
src/main/java/com/rafsan/inventory/controller/sales/SalesController.java - Invoice reports
src/main/java/com/rafsan/inventory/controller/report - Invoice PDF
src/main/java/com/rafsan/inventory/pdf/PrintInvoice.java
Persistence
- Domain models
src/main/java/com/rafsan/inventory/model - Data access
src/main/java/com/rafsan/inventory/dao - Persistence entities
src/main/java/com/rafsan/inventory/entity - Hibernate setup
src/main/java/com/rafsan/inventory/HibernateUtil.java
Other components
- Staff user
- MySQL database
Connections 26
- Staff user → Application entry: launches
- Application entry → Login: opens
- Staff user → Login: signs in
- Login → Domain models: checks credentials
- Login → Dashboard charts: opens dashboard
- Staff user → Product and category: maintains catalog
- Staff user → Supplier management: maintains suppliers
- Staff user → Employee management: manages staff
- Staff user → Purchase records: records purchases
- Staff user → POS cart and payment: builds cart
- POS cart and payment → Domain models: loads products
- POS cart and payment → Invoice checkout: opens checkout
- Invoice checkout → Domain models: records sale
- Invoice checkout → Sale confirmation: opens confirmation
- Staff user → Sales records: reviews sales
- Staff user → Invoice reports: reviews invoices
- Dashboard charts → Domain models: loads chart data
- Product and category → Domain models: manages records
- Supplier management → Domain models: manages records
- Employee management → Domain models: manages records
- Purchase records → Domain models: loads purchases
- Sales records → Domain models: loads sales
- Invoice reports → Domain models: loads invoices
- Domain models → Data access
- Data access → Persistence entities
- Hibernate setup → MySQL database: connects