How trung0017/retail-pos-multi-store-inventory-management-system works
This is a React/Redux retail POS and multi-branch inventory application. Cashiers select a branch, scan/search products, build a cart, take cash/card/split payment, then record the order, deduct stock, update shift totals, and view/print a receipt. Separate workflows manage transfers and safety stock, order history/refunds and simulated sync, shift cash reconciliation, and analytics. The graph follows sampled app wiring and README capabilities; unsampled feature internals are represented by their exact component paths, and cloud synchronization is only simulated in the sampled UI.
Main entry points: App.tsx App Router · index.ts Redux Store · posSlice.ts Register State · PaymentModal.tsx Payment Checkout
Components 20
Application Shell
- App Router
src/App.tsx - Branch Navigation
src/components/layout/HeaderNav.tsx
POS Checkout
- Barcode Scanner
src/components/pos/BarcodeScannerBar.tsx - Product Grid
src/components/pos/ProductGrid.tsx - Cart Panel
src/components/pos/CartPanel.tsx - Payment Checkout
src/components/pos/PaymentModal.tsx - Thermal Receipt
src/components/pos/ThermalReceiptModal.tsx
Store Operations
- Inventory Manager
src/components/inventory/InventoryManager.tsx - Order History
src/components/orders/OrderHistory.tsx - Shift Reconciliation
src/components/shift/ZReportView.tsx - Business Analytics
src/components/analytics/AnalyticsView.tsx
State and Data
- Redux Store
src/store/index.ts - Register State
src/store/slices/posSlice.ts - Inventory State
src/store/slices/inventorySlice.ts - Orders and Sync State
src/store/slices/ordersSlice.ts - Shift Ledger
src/store/slices/shiftSlice.ts - Browser Persistence
- Seed Catalog
src/data/seedData.ts - Retail Domain Types
src/types/index.ts
Other components
- Cashier
Connections 34
- Cashier → App Router: uses
- App Router → Branch Navigation: renders
- App Router → Barcode Scanner: renders
- App Router → Product Grid: renders
- App Router → Cart Panel: renders
- App Router → Payment Checkout: renders
- App Router → Thermal Receipt: renders
- App Router → Inventory Manager: routes to
- App Router → Order History: routes to
- App Router → Shift Reconciliation: routes to
- App Router → Business Analytics: routes to
- Branch Navigation → Register State: updates
- Branch Navigation → Orders and Sync State: dispatches sync
- Barcode Scanner → Register State: updates cart
- Product Grid → Register State: updates cart
- Cart Panel → Register State: reads and updates
- Payment Checkout → Orders and Sync State: records order
- Payment Checkout → Inventory State: deducts stock
- Payment Checkout → Shift Ledger: records sale
- Payment Checkout → Register State: clears and opens receipt
- Thermal Receipt → Register State: reads receipt data
- Inventory Manager → Inventory State: manages stock
- Order History → Orders and Sync State: reads and updates
- Order History → Register State: reads network status
- Shift Reconciliation → Shift Ledger: records drops and closes
- Business Analytics → Redux Store: reads metrics
- Redux Store → Register State: combines
- Redux Store → Inventory State: combines
- Redux Store → Orders and Sync State: combines
- Redux Store → Shift Ledger: combines
- Redux Store → Browser Persistence: loads and persists
- Seed Catalog → Inventory State: initializes catalog
- Seed Catalog → Orders and Sync State: initializes orders
- Retail Domain Types → Redux Store: defines domain shapes