Ordering app for a field sales team
Internal order-taking app for the field sales team of a distributor. The office approves orders and exports them as XML.
- Type:
- Client work
- Status:
- Beta
- Year:
- 2026
Image placeholder
The problem
Sales agents lacked quick access to prices, a customer's price history and stock, and they typed orders by hand. The app must never expose the accounting system or write to it.
What I built
- Product search by name, code or barcode, and a per-customer price history (the last 1 to 20 invoiced prices).
- A price calculator with a warning when the margin falls under the minimum.
- An order workflow with a picking board, office approval and delivery routes for one to three drivers. The order board groups orders by delivery day. Each order has a delivery date, and the office can flag a wrong order and reopen it.
- A dashboard, an audit log and an accounts page, including a warehouse account.
- Prices and stock refresh every morning at 06:00. Approved orders leave as an XML file that the office imports by hand.
Stack
- TypeScript
- Node.js
- Fastify
- SQLite
- Nunjucks
- Argon2id
- Playwright
- Vitest
- Kotlin (Android WebView)
- Python
- PowerShell
Results
- The source data is read only. Every read runs in a read-only transaction and an SQL guard blocks writes.
- Passwords use Argon2id and the app has CSRF protection.
- Automated checks: 16 test files with 73 passing tests, plus lint and format checks.