Skip to content
← All projects

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.

Role
Mobile Product Developer
Platform
iOS and Android
Stack
Flutter and SQLite
Tidy Shop product screens

Why Tidy Shop exists

The challenge

At a busy convention booth, a notebook gets messy, spreadsheets wait until later, and internet may not work.

The approach

Keep sales, inventory, events, promotions, and useful reporting on the device, then sync extra devices locally when needed.

Key features

Tidy Shop: Add products and create an event
01

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.

Tidy Shop: Add products and create an event
02

Record a sale in seconds

Tap products visually, apply a promotion if needed, and record whether the customer paid with cash, transfer, or card.

Tidy Shop: Record a sale in seconds
03

See the numbers that matter

Review total sales, earnings, profit when costs are added, low stock, popular products, and sales channels.

Tidy Shop: See the numbers that matter
04

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.

Tidy Shop: Sync another device at the booth

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.