PantryPay (also known as PantryPal V3) is a comprehensive cross-platform mobile application built with Flutter. It helps users manage their kitchen inventory, discover recipes based on their pantry, plan meals, and streamline their grocery shopping experience.
- Authentication & Onboarding: Secure user authentication powered by AWS Amplify Cognito.
- Pantry Management:
- Track inventory levels of ingredients.
- Smart scanning integration (camera/image picker) to add items easily.
- Recipe Discovery:
- Browse recipes powered by Spoonacular API.
- "Cook Now" functionality which automatically deducts used ingredients from your pantry.
- Shopping Planner: Manage your shopping lists, moving items easily between your cart and pantry.
- Dashboard: A centralized view of your kitchen's status.
This application leverages modern Flutter development practices:
- Framework: Flutter SDK (>=3.3.0)
- State Management: Riverpod (
flutter_riverpod,riverpod_generator) - Navigation: GoRouter for declarative routing
- Networking: Dio for robust HTTP requests
- Authentication: AWS Amplify Cognito (
amplify_flutter) - Environment:
flutter_dotenvfor managing environment variables
The codebase is organized into feature-based modules within the lib/features directory:
auth/- Authentication flows (Login, Register, AWS Cognito setup)dashboard/- Main landing view after loginonboarding/- Welcome screens and initial setup for new userspantry/- Inventory list, item details, and camera/scanning logicplanner/- Shopping lists and meal planningprofile/- User settings and preferencesrecipes/- Recipe feed, detailed instructions, and "Cook Now" logicsplash/- Initial app load screen
- Flutter SDK (>=3.3.0)
- Dart SDK
- Android Studio / Xcode (for emulation/building)
- API Keys: You will need a valid Spoonacular API key and an AWS backend environment configured.
Create a .env file in the root directory and add the necessary configuration variables:
# Example .env configuration
SPOONACULAR_API_KEY=your_api_key_here
API_BASE_URL=your_backend_url_here-
Install dependencies:
flutter pub get
-
Generate required Riverpod and JSON serialization files:
flutter pub run build_runner build --delete-conflicting-outputs
-
Run the app:
flutter run
To update or generate launcher icons, ensure your asset image is placed at assets/images/app-logo.png and run:
flutter pub run flutter_launcher_icons