CoffeeCraft
Full-featured coffee shop app with dual roles, real-time orders, and atomic wallet transactions.
Screenshots
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










