South African grocery comparison and shopping list app
# Milk π
A South African grocery comparison and shopping list app built with Flutter and Supabase. Compare prices across major retailers, create smart shopping lists, and generate AI-powered recipes with automatic ingredient matching.
## β¨ Features
### Product Browsing & Search
- View products and specials from major SA retailers
- Smart search with real-time filtering
- Promo-only toggle and sorting options
- Price comparison across stores
### Shopping Lists
- Create and manage multiple shopping lists with color coding
- Real-time collaboration with family/friends
- Automatic total calculation with promo price support
- Share lists via invite system
### π AI Recipe Generation
- Generate recipes from name/description using Google Gemini AI
- "Use Ingredients" mode - get recipe suggestions from what you have
- Automatic ingredient-to-product matching
- Re-match ingredients for specific stores
- Export recipe ingredients directly to shopping list
- Save favorite recipes to "My Recipes"
### Offline Support
- Full offline functionality with Hive local storage
- Background sync when connection restored
- Optimistic UI updates
### Additional Features
- Dark mode support
- Google OAuth authentication
- Guest browsing mode
## πͺ Retailers Supported
| Retailer | Products | Specials | Status |
| ---------- | -------- | -------- | ------ |
| Pick n Pay | β
| β
| Active |
| Woolworths | β
| β
| Active |
| Shoprite | β
| β
| Active |
| Checkers | β
| β
| Active |
## π οΈ Tech Stack
- **Frontend**: Flutter (Dart)
- **Backend**: Supabase (PostgreSQL, Auth, Realtime)
- **AI**: Google Gemini API
- **State Management**: Riverpod
- **Routing**: go_router
- **Local Storage**: Hive, flutter_secure_storage
## π Getting Started
### Prerequisites
- Flutter SDK (3.19+ recommended)
- Android Studio or VS Code with Flutter extension
- A Supabase project
- Google Gemini API key (for AI recipes)
### Setup
1. **Clone the rep β¦