An Android billing and point-of-sale system for cafes and hotels, in daily use across 15+ venues. A single app serves four distinct privilege tiers - owner, waiter, kitchen/bar station and reception - with least privilege enforced in Firestore security rules and verified at the database layer using real per-role tokens. Includes ESC/POS thermal receipt printing over both Bluetooth Classic and TCP 9100, plus QR-based guest ordering.
SoLo Billing replaces paper-and-calculator billing for small hospitality venues. The security model is the core of the design: rather than hiding UI per role, each tier authenticates to a custom token carrying its own role claim, and Firestore rules enforce access at the database layer - so a waiter device physically cannot read owner-level financials even with a modified client. That boundary is covered by an end-to-end security suite (13/13 passing) that probes the REST API directly with real per-role tokens. Guests order by scanning a table QR, which writes to a token-gated collection that staff accept into the running table bill.