An AI-powered cooking assistant app built with Flutter that helps you create delicious recipes from available ingredients.
- 🤖 AI Recipe Generation: Generate custom recipes from your available ingredients
- 📱 Cross-Platform: Works on iOS, Android, and Web
- 🔥 Firebase Integration: User authentication and data storage
- 🍽️ Meal Planning: Plan your meals for the week
- 🛒 Shopping Lists: Generate shopping lists from recipes
- 📊 Nutrition Tracking: Track nutritional information
- 👥 Social Features: Share recipes with the community
- Flutter SDK (>=3.10.0)
- Dart SDK (>=3.0.0)
- Firebase project (optional, for full functionality)
- OpenAI API key (optional, for AI recipe generation)
-
Clone the repository
git clone https://github.com/yourusername/chefmind_ai.git cd chefmind_ai -
Install dependencies
flutter pub get
-
Set up environment variables (Optional)
cp .env.example .env
Edit
.envfile with your API keys:OPENAI_API_KEY=your-openai-api-key-here FIREBASE_PROJECT_ID=your-firebase-project-id -
Configure Firebase (Optional)
- Create a new Firebase project
- Add your app to the project
- Download configuration files:
google-services.jsonfor Android (place inandroid/app/)GoogleService-Info.plistfor iOS (place inios/Runner/)
- Update
lib/core/config/firebase_options.dartwith your project details
-
Run the app
flutter run
By default, the app runs in mock data mode, which means:
- Recipe generation uses mock data instead of OpenAI API
- Firebase authentication is optional
- All features work without external dependencies
To enable real API calls:
- Set up your OpenAI API key in the environment
- Set
ENABLE_MOCK_DATA=falsein your.envfile - Configure Firebase for authentication
- Get an API key from OpenAI
- Add it to your
.envfile:OPENAI_API_KEY=sk-your-actual-api-key-here - Set
ENABLE_MOCK_DATA=falseto use real AI generation
- Create a Firebase project at Firebase Console
- Enable Authentication with Email/Password
- Enable Firestore Database
- Download configuration files and place them in the correct directories
- Update
firebase_options.dartwith your project configuration
lib/
├── application/ # Business logic and providers
│ ├── providers/ # Riverpod providers
│ └── usecases/ # Use cases
├── core/ # Core functionality
│ ├── config/ # Configuration files
│ ├── errors/ # Error handling
│ ├── router/ # Navigation
│ ├── services/ # Core services
│ ├── theme/ # App theming
│ └── utils/ # Utilities
├── domain/ # Domain layer
│ ├── entities/ # Domain entities
│ ├── enums/ # Enumerations
│ ├── repositories/ # Repository interfaces
│ └── services/ # Service interfaces
├── infrastructure/ # Infrastructure layer
│ ├── models/ # Data models
│ ├── repositories/ # Repository implementations
│ └── services/ # Service implementations
└── presentation/ # UI layer
├── screens/ # App screens
└── widgets/ # Reusable widgets
- Input available ingredients
- Select cuisine type and meal preferences
- AI generates custom recipes with instructions
- Nutritional information included
- Weekly meal calendar
- Drag and drop meal planning
- Nutrition tracking
- Shopping list generation
- Firebase authentication
- User preferences and dietary restrictions
- Cooking skill level tracking
- Recipe favorites and collections
- Share recipes with community
- Rate and review recipes
- Cooking challenges
- User groups
flutter testflutter packages pub run build_runner buildflutter analyze- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue if your problem isn't already reported
- Provide detailed information about your environment and the issue
- Flutter team for the amazing framework
- OpenAI for the GPT API
- Firebase for backend services
- The Flutter community for packages and inspiration