How nguyenminh121/thesms works
TheSMS is an offline desktop POS and inventory-management ERP. The main workflow is a staff member using the Vue interface to create or manage a sale; the frontend sends API requests to the local Express backend, whose controllers and business services handle order and stock operations against SQLite through Prisma. The product also covers catalog and warehouse management, partners, pricing, invoices, payments, finance, reporting, users, settings, and printing. README and sampled files support the overall Electron/Vue/Express boundary; most individual feature routes were not sampled, so their internal wiring is left unspecified.
Main entry points: api/index.js API client · orderController.js Order controller · routes/index.js API routes · prisma.js Prisma data access
Components 19
Desktop interface
- Vue application
src/frontend/src/App.vue - API client
src/frontend/src/api/index.js
Sales and commerce
- POS and orders
src/frontend/src/views/sales - Order controller
src/backend/controllers/orderController.js - Order service
src/backend/services/orderService.js - Partners and pricing
src/frontend/src/views/partners - Invoices and payments
src/frontend/src/views/invoices
Catalog and inventory
- Stock service
src/backend/services/stockService.js - Product catalog
src/frontend/src/views/products - Warehouse operations
src/frontend/src/views/stock-management
Backend platform
- Local API server
src/backend/server.js - API routes
src/backend/routes/index.js - Authentication
src/backend/services/authService.js - Prisma data access
src/backend/utils/prisma.js - SQLite database
database/schema.prisma
Business support
- Finance and reports
src/frontend/src/views/finance - Users and settings
src/frontend/src/views/settings - Printing
src/backend/services/printService.js
Other components
- Store staff
Connections 19
- Store staff → Vue application: uses
- Vue application → POS and orders: opens sales
- POS and orders → API client: requests operations
- API client → Local API server: HTTP requests
- Local API server → API routes: mounts API
- API routes → Authentication: auth endpoints
- API routes → Order controller: order endpoints
- Order controller → Order service: calls
- Order controller → Stock service: checks stock
- Order controller → Prisma data access: queries
- Authentication → Prisma data access: queries users
- Prisma data access → SQLite database: reads and writes
- Product catalog → API client: uses API
- Warehouse operations → API client: uses API
- Partners and pricing → API client: uses API
- Invoices and payments → API client: uses API
- Finance and reports → API client: uses API
- Users and settings → API client: uses API
- Printing → SQLite database: invoice data