Skip to content
All projects
CoffeeCraft icon

CoffeeCraft

Full-featured coffee shop app with dual roles, real-time orders, and atomic wallet transactions.

4.9Food & DrinkiOSSolo developer · 2025

Screenshots

  • Screenshot 1
  • Screenshot 2
  • Screenshot 3
  • Screenshot 4
  • Screenshot 5
  • Screenshot 6
  • Screenshot 7
  • Screenshot 8
  • Screenshot 9
  • Screenshot 10
  • Screenshot 11

Challenge

Simulate a production-grade ordering system with two distinct roles — Customer and Manager — real-time order tracking, an in-app wallet with a consistent ledger, and proof-of-purchase reviews, all without a custom backend.

Solution

Built on Firestore snapshot listeners for real-time updates, `db.runTransaction()` for every balance mutation (top-up, payment, refund), a repository protocol layer that keeps ViewModels free of Firebase imports, and a dual-role tab architecture that filters tabs by role without branching in the view hierarchy.

Result

Private portfolio project showcasing production patterns: 4-environment Firebase setup (Dev/SIT/UAT/Prod), atomic wallet transactions, peer-verified reviews, FCM deep-link notifications, and a 4-color theme system switchable at runtime.

Built with

  • Swift
  • SwiftUI
  • MVVM
  • Firebase
  • Firestore
  • FCM
  • MapKit
  • CoreLocation
GitHub (private)