Case study
Afiam
A mobile accounting app for small businesses: photograph a receipt and the bookkeeping is done for you.
- Live
- iOS
- Android
The problem
Small shops need to track sales, stock and expenses, but keeping books by hand is slow, and paper receipts pile up without ever being recorded.
What I built
- Smart Scan: photograph expense, stock-purchase and sales receipts; the app records the accounting automatically
- Sales tracking and inventory control
- Cross-shop analytics to compare performance across branches
- Account statement generation with PDF download
- Multi-user team access
My role
Sole developer: I built the Flutter app for iOS and Android, the Firebase backend and Cloud Functions, in-app subscriptions, and the marketing site, and I publish the releases to both stores.
Tech stack
- Flutter
- Dart
- Firebase
- Cloud Functions
- Gemini Vision
- SQLite
Technical challenges & decisions
Receipt extraction
Receipt photos are parsed server-side by a Cloud Function using Gemini Vision (with OpenAI as an alternative), so API keys never ship in the app. It handles purchase, sale and expense receipts and can auto-detect the type, and the user reviews the extracted lines before anything is saved.
Fair-use scan quotas
Each shop has a monthly scan quota set by its subscription tier and read from remote config. A scan is charged up front and refunded if parsing fails or returns nothing, and the refund lands on the same month it was charged, even across a month boundary.
