A dedicated mobile till for Posnic, built with React Native, Expo and TypeScript. This first implementation is an alpha for local evaluation, not a production payment release. Start with Try a training shop. Practice transactions stay on the device and are never uploaded.
Requires Node.js 22+, npm and, for Android, a configured Android SDK and JDK.
npm ci
npm run build:web
node scripts/serve-preview.mjsThe browser preview uses IndexedDB and is for UX evaluation. Native builds use SQLCipher SQLite with a key in the OS secure store. Expo Go is not supported because its SQLite build does not provide this encryption setup.
npx expo prebuild --platform android
npm run androidiOS uses the same source but requires macOS/Xcode and device testing. Native project directories are generated from app.json and are not committed. Do not uninstall or clear storage on a device with unsynced sales.
- Visual item tiles, hidden numeric quick codes, camera scanning and amount-only sales.
- Integer-money checkout, cash received/change, optional customer, held carts and receipts.
- Transactional sale/outbox commits, retry identifiers, pinned shop/branch, review state and atomic catalogue snapshot replacement. Existing carts retain price snapshots.
- Permissions and offline grant expiry.
- Branch UPI account selection and amount-bound QR generation. Manual confirmation stays explicitly staff-confirmed; it never implies bank verification.
- Phone print-service receipts and a capability-gated till print-job client.
- All 18 language choices, Arabic direction, Tamil mobile translations, beta packs with visible coverage and English fallback.
- Isolated training shop for evaluation without a server.
- Account-first browser sign-in and free-trial signup, explicit device approval, authenticated local-till discovery, Community LAN/QR/code fallback and PIN unlock.
The matching POS API implements bootstrap, one-use pairing, durable sale ingestion, branch payments, device revocation and till receipt jobs. Live onboarding requires features.mobilePosV1; a legacy server must be updated. Account sign-in also requires the matching web-api, Gateway and website release. See the release notes for deployment status.
See implementation status and the required server contract. Direct Bluetooth/USB printer drivers, provider-confirmed UPI/card payments and native hardware QA remain release requirements. English and Tamil have all current keys; the other 16 packs have partial mobile keys and need completion and language review.
npm run check
npm run format:check
npm run build:web
npx playwright install chromium
npm run test:e2eTests cover transaction failure/retry, money, tax, permissions, catalogue replacement, receipt escaping, persisted checkout, offline cash, hidden codes, hold/resume and language changes. Native storage, printer and terminal tests must run on devices.
See the research and roadmap for the approved direction. See connection and PIN unlock for Wi-Fi discovery, remembered credentials, supported addresses and local PIN behavior.
Licensed under AGPL-3.0-only. Inherited language strings come from Posnic POS under the same license.