Kitchen is a modern Android study project that explores the intersection of social recipe discovery and on-demand delivery logistics. It seamlessly merges the culinary community spirit of Cookpad with the hyper-local delivery efficiency of Glovo.
Built with Jetpack Compose and Clean Architecture, Kitchen demonstrates a professional-grade implementation of a multi-module e-commerce platform, from ingredient sourcing to live courier tracking.
A comprehensive user dashboard designed for identity and logistics management:
- Identity Hub: Manage Full Name, Email, Phone, and a personal Bio.
- Loyalty System: Built-in rewards points and voucher management.
- Logistics Suite:
- Address Book: CRUD support for multiple locations (Home, Work, etc.) with delivery notes.
- Saved Payments: Secure management of mock credit cards and digital wallets.
- Activity Tracking: Deep links to My Recipes, Wishlist (Cookbook), and Order History.
- App Preferences: Interactive toggles for Dark Mode and Notification Updates.
- Recipe Studio: A multi-step creator for publishing recipes with dietary tags and itemized ingredients.
- Dynamic Feed: Real-time recipe discovery with "Social Trust" indicators (Likes, Comments, and Star Ratings).
- Dietary Matching: Intelligent UI that automatically badges recipes that match the user's dietary habits (e.g., Vegan, Keto).
- "Shop the Recipe": Convert inspiration into action by adding all ingredients from a recipe directly to your delivery cart.
- Store Explore: Discover local supermarkets, specialty delis, and organic farms.
- Distance Logic: Real-time distance calculation from the user's home to local vendors using the Haversine formula.
- Live Tracking: Integrated Google Maps SDK simulating a courier's journey from the vendor to the user's doorstep with live status updates.
- Language: Kotlin
- UI Framework: Jetpack Compose (100% Declarative UI)
- Design System: Material 3 (M3) with adaptive layouts for all screen sizes.
- Architecture: MVVM + Clean Architecture (Domain, Data, Presentation layers).
- Navigation: Compose Navigation with deep-link support and state retention.
- Reactive Logic: Kotlin Coroutines & Flow (StateFlow, SharedFlow).
- Image Loading: Coil (Asynchronous food media rendering).
- Mock Repository Pattern: A sophisticated data layer that simulates network latency and database persistence without requiring a live backend.
- State Management: Unified UI State pattern using sealed classes for Loading, Success, and Error states.
- Maps: Google Maps SDK for Android (via
maps-compose). - Icons: Material Icons Extended for a professional visual language.
The app follows a structured vertical hierarchy for optimal UX:
- Header: Interactive profile identity and loyalty summary.
- Shortcuts: Horizontal action bar for high-frequency tasks (Order Status, Returns).
- Content: Categorized menu lists for Logistics, Activity, and Preferences.
- Footer: Help Center, Support access, and Session management (Logout).
This project is a self-contained study environment. No external API keys are strictly required to explore the UI and logic, though a Google Maps key can be added for the full mapping experience.
- Clone the Repository
- Build the Project:
./gradlew assembleDebug
- Run: Open in Android Studio and deploy to an emulator or physical device.
Note: For the Map tracking feature, add your MAPS_API_KEY to local.properties.
- State Propagation: How to sync user profile changes across separate ViewModel scopes.
- Adaptive UI: Implementing
BoxWithConstraintsto support multiple device dimensions. - Event Handling: Using
SharedFlowfor one-time navigation events (e.g., Checkout success).
Distributed under the MIT License. Built for study and architectural exploration.