WishDish is a thoughtfully crafted restaurant app designed to digitize the menu experience, streamline order handoff, and enhance emotional clarity for both customers and staff. Built with SwiftUI and modular architecture, it emphasizes menu browsing, invoice tracking, and real-time order status β all without forcing transactional flow.
-
π§Ύ Digitized Menu Browsing
- Mood-based categories (e.g. Family Dining, Extras)
- Quantity selection with steppers
- Offline-style viewing with wishlist-style marking
-
π Invoice Management
- View all invoices
- Add new invoice with feedback and tip
- Categorized billing (food, water, etc.)
-
β±οΈ Order Status Tracking
- Real-time progress bar based on elapsed time
- Status transitions: Preparing β Ready β Served
- Wait time estimation and visual feedback
-
π¬ Feedback & Tipping
- Emoji-based feedback
- Optional tip entry
- Emotional polish for user delight
-
π§ Tab-Based Navigation
- Custom tab bar with icons: Mood, Menu, Invoices, Add Invoice
- Seamless transitions between views
-
SwiftUI + MVVM
- Modular views and view models
- Reactive state updates
- Clean separation of UI and logic
-
Custom Components
OrderStatusViewwith second-based progress updatesInvoiceCreateViewwith expressive feedback UI- Direct bundle image loading for mood icons and category visuals
-
Mock Data Support
- JSON-based mock loaders for testing
- Decodable models with fallback handling
- β Unit tests for decoding and subtotal logic
- β Mock JSON loading for menu items
- β Timer-driven progress simulation
- β UI validation for feedback and invoice creation
- Open
WishDish.xcodeprojin Xcode 15+ - Run on iPhone 17 Pro simulator (or any iOS 26+ device)
- No external dependencies β pure SwiftUI
Experience WishDish in action β modular SwiftUI architecture, mood-based browsing, and real-time order flow.
-
Remote image loading with caching
-
Multi-order support for table management
-
Waiter handoff flow with QR or NFC
-
Analytics for popular items and feedback trends
-
Accessibility improvements
- VoiceOver support
- Dynamic type scaling
- High contrast and semantic clarity
-
Multilanguage support
- Localized strings via
.stringsfiles - Region-based menu customization
- RTL layout support for languages like Arabic or Hindi
- Localized strings via
WishDish is built to replicate the offline menu experience, allowing customers to browse, mark items, and notify waiters with minimal friction. It prioritizes clarity, emotional resonance, and modular scalability, making it ideal for both small cafΓ©s and large dining chains.
Crafted with care by Roshan Sah β bridging architecture, empathy, and delight.