Salon POS — Quickstart
A full-featured point-of-sale system for salon, spa, and nail businesses, built with Flutter for Android tablets (1280×800 landscape). Runs entirely on the local network with an offline-first design and optional cloud sync.
Architecture at a glance
Every device — including the Primary itself — talks to a single local HTTPS API. Only the Primary owns the SQLite database. Switching between Primary and Secondary is a base-URL change; there is no branching logic in client code.
See Architecture for the full LAN topology, security model, and handler system.
Tech stack
Getting started
The app targets Android tablets in landscape. Config files live in config/ — copy config/dev.example.json to config/dev.json and set your dev machine's LAN IP.
Build (release APKs)
Environment URLs are injected via --dart-define-from-file (config/dev.json, config/uat.json, config/prod.json).
Project layout
Key documentation pages
- Architecture — LAN topology, Primary/Secondary device roles, Shelf handlers, TLS & Ed25519 security, offline-first design
- Features — All 14 feature modules with purpose, key files, cross-feature dependencies
- Data Models — 67-table Drift schema, sync outbox/registry, shared domain models
- Operations — Build config, cloud sync pipeline, observability, backup/restore, deployment
- Testing — Test structure, pump harness, mock Dio, coverage patterns
Feature highlights
- Check-in & waiting list — customer search, walk-ins, service selection, per-service staff assignment, VIP/allergy/blacklist alerts, visit history
- Tickets & checkout — service and retail-product sales, discounts, tax, surcharge, tips, printed/PDF receipts
- Appointments — calendar with resource and staff scheduling, recurring appointments, online booking request management
- Staff & RBAC — PIN login, role-based permissions with a permission matrix, per-action privilege escalation
- Commission & payroll — percentage or fixed-amount commission, hourly wages, labor-cost and staff-earnings reports
- Gift cards & loyalty — sale, redemption, balance tracking, loyalty points
- Card payments — CodePay terminal integration for sale, void, refund, tip adjustment, and batch settlement
- Reporting — Z-report close-out plus sales, attendance, labor-cost, appointment, resource, customer, gift-card, and loyalty analytics
- Cloud — account onboarding, multi-store registration, push-sync upload, and pull-sync restore
- Multi-device security — per-device Ed25519 identities, fingerprint-pinned HTTPS on the LAN, zero-trust session tokens