How dia-312/pos-1 works
This is a local-first POS application for cafés and small businesses. The user workflow enters through routed login or sales screens; in the cashier flow, staff select products, build a cart, confirm checkout, record a sale and reduce stock, with receipt printing available afterward. Separate screens cover product, order, expense, user, dashboard and report management, while settings and theme state support the application. The database and backup paths are evident, but unsampled page and helper implementations limit claims about their internal wiring.
Main entry points: AppRoutes.tsx Route dispatch · Cashier.tsx Cashier checkout · database.ts SQLite data layer · App.tsx App shell
Components 25
Application shell
- App shell
src/App.tsx - Route dispatch
src/routes/AppRoutes.tsx - Protected routes
src/routes/ProtectedRoute.tsx - Admin routes
src/routes/AdminRoute.tsx - Login
src/pages/Login.tsx - Auth state
src/store/useAuthStore.ts - Settings
src/pages/Settings.tsx - Theme state
src/store/useThemeStore.ts - About page
src/pages/About.tsx
Sales workflow
- Cashier checkout
src/pages/Cashier.tsx - Cart state
src/store/useCartStore.ts - Checkout dialog
src/components/ui/CheckoutModal.tsx - Receipt formatting
src/lib/html.ts
Business operations
- Dashboard
src/pages/Dashboard.tsx - Dashboard state
src/store/useDashboardStore.ts - Product management
src/pages/Products.tsx - Order management
src/pages/Orders.tsx - Expense tracking
src/pages/Expenses.tsx - Reports and exports
src/pages/Reports.tsx - User management
src/pages/Users.tsx
Local data platform
- Automatic backup
src/lib/backup.ts - SQLite data layer
src/lib/database.ts - Secret hashing
src/lib/crypto.ts - Tauri desktop host
src-tauri/src/main.rs
Other components
- Staff or admin
Connections 28
- Staff or admin → Route dispatch: navigates
- Route dispatch → Login: dispatches
- Route dispatch → Protected routes: guards
- Route dispatch → Admin routes: guards
- Route dispatch → Cashier checkout: dispatches
- Route dispatch → Product management: dispatches
- Route dispatch → Order management: dispatches
- Route dispatch → Expense tracking: dispatches
- Route dispatch → Dashboard: dispatches
- Route dispatch → Reports and exports: dispatches
- Route dispatch → User management: dispatches
- Route dispatch → Settings: dispatches
- Route dispatch → About page: dispatches
- App shell → Route dispatch: renders
- App shell → SQLite data layer: initializes
- App shell → Automatic backup: starts
- App shell → Theme state: initializes
- Cashier checkout → SQLite data layer: reads products
- Cashier checkout → Cart state: updates
- Cashier checkout → Checkout dialog: opens
- Checkout dialog → Cashier checkout: confirms
- Cashier checkout → SQLite data layer: records sale
- Cashier checkout → SQLite data layer: reduces stock
- Cashier checkout → Receipt formatting: formats receipt
- Dashboard → Dashboard state: displays
- Dashboard state → SQLite data layer: loads statistics
- SQLite data layer → Secret hashing: hashes credentials
- Tauri desktop host → SQLite data layer: hosts SQLite access