🥬 LeekQuest
LeekQuest is a modern Android application designed to track leek harvests and purchases. It transforms a simple agricultural log into a rewarding experience, guiding users from a “Leek Squire” to the legendary “Divine Leek” rank.
✨ Key Features
- Dynamic Tracking: Log purchases or harvests effortlessly (250g, 500g, 1kg, or custom input).
- Gamified Progression: Earn experience based on total weight and climb through 6 unique ranks.
- Smart Sourcing: Track where your vegetables come from (Market, Store, Producer, or Home Garden) along with their country of origin.
- Comprehensive Dashboard: Real-time weight display with year-over-year filtering and a recent history log.
- Seamless Onboarding: Personalized setup for user identity and default origin preferences.
🛠️ Technical Stack
Built with a focus on modern Android development standards and clean architecture:
- Language: Kotlin (100%)
- UI Framework: Jetpack Compose with Material 3
- Architecture: MVVM (Model-View-ViewModel)
- Local Persistence: Room Database for purchase history
- Preference Management: Jetpack DataStore for settings and onboarding state
- Asynchronous Flow: Kotlin Coroutines & StateFlow for reactive UI updates
- Resource Management: Fully externalized strings (no hardcoded text) for easy localization
🎨 UI/UX Highlights
- Contrast-Driven Design: Clean white-background inputs and chips for high legibility.
- Polished Navigation: Custom Navigation Bar with persistent white icons and primary-colored indicators.
- Optimized Startup: Zero-flash onboarding logic using nullable StateFlows to handle initial data loading.
- Input Efficiency: Automatic focus management and keyboard dismissal upon action validation.