The challenge
Case Study
Tidy Shop
Fast offline sales tracking for busy convention booths.
Record sales, track stock, run promotions, and review each event without a bank connection or reliable internet.
Why Tidy Shop exists
The approach
Keep sales, inventory, events, promotions, and useful reporting on the device, then sync extra devices locally when needed.
Key features
Add products and create an event
Add the products you’re bringing, set up the convention or market you are attending, then link each sale to that event.
Record a sale in seconds
Tap products visually, apply a promotion if needed, and record whether the customer paid with cash, transfer, or card.
See the numbers that matter
Review total sales, earnings, profit when costs are added, low stock, popular products, and sales channels.
Sync another device at the booth
Start a session on one device, scan its QR code from another phone, and record sales together while staying offline.
What I built
A fast sales and inventory tracker for convention sellers who cannot stop to write everything down.
Frontend / App
- Built the Flutter app across sales, products, events, promotions, analytics, settings, and sync.
- Designed visual sale entry for quick use while sellers are serving customers.
Data / Reliability
- Modeled products, events, sales, sale items, promotions, and settings locally with Drift and SQLite.
- Stored each sale and stock update in one transaction so inventory stays accurate.
Local sync and recovery
- Built host and terminal sessions with QR code joining, processed message tracking, and duplicate sale protection.
- Added reconnect snapshots plus ZIP backup export and import for device recovery and portability.
Engineering decisions
The local data and sync rules that keep stock accurate while several people are selling.
Keep every sale on the device
The app records sales and inventory locally. It does not need internet, a bank account, or a payment processor to keep working.
Update sales and stock together
A sale, its products, and the inventory change are stored in one transaction so stock cannot fall out of step with sales.
Sync through one host device
One device starts a local session and shares a QR code. Connected devices send sales to that host, which keeps the stock count in sync.