Skip to content

mh2des/Shifo_App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Shifo Logo

Shifo (شيفو) - AI Culinary Assistant

Your Personal AI-Powered Chef & Nutritionist

Features β€’ Screenshots β€’ Demo β€’ Tech Stack β€’ Installation β€’ Architecture β€’ Contributing

Flutter Dart Firebase Flask Generative AI

Platforms Language License


About

Shifo (شيفو) is a Flutter application powered by Generative AI that acts as your personal culinary expert and nutritionist. Simply enter the ingredients you have available, and Shifo will suggest custom recipes complete with step-by-step cooking instructions, detailed nutrition information, and helpful add-ons.

Built with Flutter, Flask, and Firebase, it simplifies cooking, promotes healthy choices, and makes daily meals exciting!


Features


AI Recipe Generation
Smart recipes based on your available ingredients

Nutrition Information
Calories, protein, fats & carbs breakdown

Step-by-Step Instructions
Easy-to-follow cooking guidance

Cloud Sync
Save & access recipes across devices

Secure Authentication
Firebase Auth with email & password

Arabic RTL Support
Full Arabic interface with RTL layout

Screenshots

Welcome Screen Onboarding Login Screen Registration

Home Screen Ingredients Selection Cooking Progress Recipe Ready

Recipe Details Nutrition Info My Recipes Profile Screen


Demo

Demo Video


Tech Stack

Frontend

Technology Purpose
Flutter Cross-platform UI framework
Dart Programming language
GetX State management & routing

Backend & Services

Technology Purpose
Firebase Authentication & Firestore Database
Flask Backend API server
Generative AI Recipe generation engine

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Flutter App                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Screens   β”‚  β”‚ Controllers β”‚  β”‚      Services       β”‚  β”‚
β”‚  β”‚  (UI Layer) │◄─│   (GetX)    │◄─│  (Firebase/HTTP)    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β–Ό                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     Firebase      β”‚          β”‚     Flask Backend     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚          β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚    Auth     β”‚  β”‚          β”‚  β”‚  Recipe API     β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚          β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚          β”‚           β”‚          β”‚
β”‚  β”‚  Firestore  β”‚  β”‚          β”‚           β–Ό          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚          β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚  β”‚  Generative AI  β”‚  β”‚
                               β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Project Structure

lib/
β”œβ”€β”€ main.dart                    # App entry point
β”œβ”€β”€ routes.dart                  # App navigation routes
β”œβ”€β”€ firebase_options.dart        # Firebase configuration
β”œβ”€β”€ controllers/
β”‚   └── auth_controller.dart     # Authentication logic
β”œβ”€β”€ screens/
β”‚   β”œβ”€β”€ welcome_screen.dart      # Onboarding pages
β”‚   β”œβ”€β”€ login_screen.dart        # User login
β”‚   β”œβ”€β”€ registration_screen.dart # User registration
β”‚   β”œβ”€β”€ home_screen.dart         # Main ingredient selection
β”‚   β”œβ”€β”€ recipe_ready_screen.dart # Recipe loading animation
β”‚   β”œβ”€β”€ recipe_detail_screen.dart# Full recipe display
β”‚   β”œβ”€β”€ recipe_steps_section.dart# Step-by-step instructions
β”‚   β”œβ”€β”€ profile_screen.dart      # User profile management
β”‚   β”œβ”€β”€ my_recipes_screen.dart   # Saved recipes list
β”‚   └── saved_recipe_detail_screen.dart
└── theme/
    └── app_theme.dart           # App theming

Installation

Prerequisites

  • Flutter SDK (3.0+)
  • Dart SDK
  • Android Studio / VS Code
  • Firebase account

Setup Steps

  1. Clone the repository

    git clone https://github.com/mh2des/Shifo_App.git
    cd Shifo_App
  2. Install dependencies

    flutter pub get
  3. Configure Firebase

    • Create a new Firebase project
    • Enable Authentication (Email/Password)
    • Set up Cloud Firestore
    • Download google-services.json (Android) and GoogleService-Info.plist (iOS)
    • Place them in the respective platform folders
  4. Run the app

    flutter run

Configuration

Environment Variables

Create a .env file in the root directory:

API_BASE_URL=https://shifu-app-backend.onrender.com

Firebase Rules

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
      
      match /saved_recipes/{recipeId} {
        allow read, write: if request.auth != null && request.auth.uid == userId;
      }
    }
  }
}

Supported Platforms

Platform Status
Android Fully Supported
iOS Fully Supported
Web Fully Supported
Windows Experimental
macOS Experimental
Linux Experimental

Color Palette

Color Hex Usage
Primary Red #E84730 Buttons, accents
Brown #6C3428 Text, borders
Background #F6F2E8 App background
White #FFFFFF Cards, inputs

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Team

Developer
mh2des

Developer

Faisal Khrisan

Developer

License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments


Made with love for food lovers everywhere

Star

About

Shifu is a Flutter app powered by Generative AI that acts as a culinary expert & nutritionist. Enter ingredients, and Shifu suggests custom recipes with steps, nutrition info, and add-ons. Built with Flutter, Flask, and Firebase, it simplifies cooking, promotes healthy choices, and makes daily meals exciting! 🍽️✨

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages