A feature-rich Flutter application for discovering, sharing, and managing recipes.
View Demo
·
Report Bug
·
Request Feature
Food App is a mobile application built with Flutter, designed for food enthusiasts. It provides a platform to explore new recipes, manage personal recipes, and engage with a community of food lovers. The app is built with a clean architecture, ensuring scalability and maintainability.
- Dynamic Home Screen: A welcoming home page with a recipe search bar and a horizontal carousel of recipe categories.
- Comprehensive Recipe Management:
- View Recipes: Browse a list of recipes with details like title, description, and rating.
- Add Recipes: A dedicated screen to add new recipes with a form for all required fields, including dynamic ingredient inputs and local image picking.
- Edit Recipes: Modify existing recipes with pre-populated forms.
- Delete Recipes: Remove recipes with a confirmation dialog.
- Like Recipes: An interactive "like" button on each recipe that updates the rating with an optimistic UI approach.
- User Authentication: Secure sign-up and sign-in functionality (UI placeholders).
- Profile Management: Customize your user profile (UI placeholders).
- Localization: Support for multiple languages (English and Bengali).
- Framework: Flutter
- Language: Dart
- State Management: Provider
- Dependencies:
image_picker: For selecting images from the local gallery.flutter_svg: For rendering SVG images.pinput: For OTP/PIN input fields.intl: For internationalization and localization.
The project follows a feature-first architectural approach to keep the codebase organized and scalable. It includes a centralized RecipeApiService to handle all data operations, separating the data layer from the UI and business logic.
lib
├── app
│ ├── app_colors.dart
│ ├── app_configs.dart
│ ├── app_logo.dart
│ ├── app_routes.dart
│ ├── app_theme.dart
│ ├── app.dart
│ └── assets_path.dart
├── core
│ ├── extensions
│ │ └── localization_extension.dart
│ └── utils
│ ├── supabase_credentials.dart
│ └── supabase_provider.dart
├── features
│ ├── auth
│ │ ├── domain
│ │ │ └── models
│ │ │ └── user.dart
│ │ └── ui
│ │ ├── providers
│ │ │ └── user_provider.dart
│ │ └── screens
│ │ ├── forget_password_screens.dart
│ │ ├── otp_verify_screens.dart
│ │ ├── sign_in_screens.dart
│ │ └── sign_up_screens.dart
│ ├── blog
│ │ └── ui
│ │ ├── screens
│ │ │ ├── blog_post_screen.dart
│ │ │ └── blog_section_screen.dart
│ │ └── widgets
│ │ ├── blog_post_card_widget.dart
│ │ └── blog_section_card_widget.dart
│ ├── contact
│ │ └── ui
│ │ ├── model
│ │ │ ├── contact_repository.dart
│ │ │ └── contact_us.dart
│ │ └── screens
│ │ └── contact_screens.dart
│ ├── home
│ │ └── ui
│ │ ├── data
│ │ │ └── dummy_recipes.dart
│ │ ├── model
│ │ │ └── RecipeModel.dart
│ │ └── screens
│ │ ├── home_screens.dart
│ │ └── widgets
│ │ ├── category_items.dart
│ │ ├── custom_appbar.dart
│ │ ├── drawer.dart
│ │ ├── halfTransparentImage.dart
│ │ ├── home_slider.dart
│ │ ├── imageWithGradientOverlay.dart
│ │ ├── recipe_page_down.dart
│ │ └── recipeCard.dart
│ ├── profile
│ │ └── ui
│ │ └── screens
│ │ ├── change_password_screen.dart
│ │ ├── edit_profile_screens.dart
│ │ └── profile_screens.dart
│ ├── recipe
│ │ ├── data
│ │ │ └── recipe_api_service.dart
│ │ ├── domain
│ │ │ └── models
│ │ │ ├── comment.dart
│ │ │ ├── ingredient.dart
│ │ │ └── recipe.dart
│ │ └── ui
│ │ ├── providers
│ │ │ └── recipe_provider.dart
│ │ └── screens
│ │ ├── add_recipe_screens.dart
│ │ ├── all_recipes_screen.dart
│ │ ├── edit_recipe_screens.dart
│ │ ├── recipe_details_screens.dart
│ │ └── recipe_list_screen.dart
│ └── shared
│ └── ui
│ └── screens
│ ├── app_bar.dart
│ ├── bottom_nav_bar.dart
│ └── splash_screens.dart
├── l10n
│ ├── app_bn.arb
│ ├── app_en.arb
│ ├── app_localizations_bn.dart
│ ├── app_localizations_en.dart
│ └── app_localizations.dart
├── main.dart
└── routes
└── app_routes.dart
To get a local copy up and running, follow these simple steps.
- Flutter SDK: Make sure you have the Flutter SDK installed.
flutter --version
- An editor like VS Code or Android Studio.
- Clone the repo
git clone https://github.com/Draculanaim/food_app.git
- Navigate to the project directory
cd food_app - Install dependencies
flutter pub get
- Run the app
flutter run
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
A huge thanks to all of our contributors:
Distributed under the MIT License. See LICENSE for more information.