Skip to content

rithakith/iwb294-team-raas

Repository files navigation

RecipeZ - Smart Recipe & Meal Planner

RecipeZ is a smart recipe and meal planner app that helps users plan meals based on their dietary preferences, available ingredients, and health goals. The app generates personalized recipe suggestions and provides a seamless meal-planning experience, making healthy eating more accessible and enjoyable.

Technical Overview of the Architecture

RecipeZ is built using a multi-tier architecture that consists of the following components:

  • Frontend: Developed with React Native and Expo using TypeScript, providing a cross-platform mobile app experience that is both type-safe and robust.
  • Backend: Powered by Ballerina, which manages server-side logic, data processing, and communication with external services. Ballerina is crucial for integrating the Gemini API for AI recommendations and handling database interactions.
  • Recommendation Engine: Implemented using Python, utilizing machine learning techniques to recommend recipes based on user preferences and past interactions.
  • Database: Uses SQL for storing user data, recipe information, and preferences.
  • AI Integration: The Gemini API is utilized for AI-powered recipe recommendations based on user inputs.
  • Authentication: Implemented using Asgardeo from WSO2 to ensure secure and seamless user login.
  • Dataset: The recommendation engine uses the Food.com Recipes and Interactions Dataset from Kaggle to power the recipe recommendations.

Core Features and Functionalities

  • User Authentication: Secure login using Asgardeo from WSO2, ensuring that personal data is protected.
  • Dietary Preferences and Allergies: Users can specify dietary preferences (e.g., vegetarian, vegan) and allergies (e.g., gluten, nuts).
  • Ingredient Input: Users can input available ingredients to receive relevant recipe suggestions.
  • Health Goals: The app offers meal recommendations tailored to specific health goals such as weight loss, muscle gain, or maintaining weight.
  • AI-Powered Recipe Suggestions: Leverages the Gemini API to provide real-time, personalized recipe recommendations based on the user's dietary needs and available ingredients.
  • Recommendation Engine: Uses a Python-based recommendation system trained on a Kaggle dataset to suggest recipes based on user preferences and past interactions.
  • Recipe Details: Displays comprehensive information, including ingredients, instructions, cooking time, nutrition, ratings, and reviews.

Instructions to Execute the Application

  1. Clone the Repositories

    git clone https://github.com/rithakith/iwb294-team-raas.git
    git clone https://github.com/rithakith/iwb294-team-raas_Backend.git
    
  2. Set Up the Environment

  • Frontend: Create a .env file in the iwb294-team-raas root folder and add:

    EXPO_PUBLIC_API_URL=http://192.168.43.52:8083
    
  • Backend: In the iwb294-team-raas_Backend folder, add a Config.toml file in the root folder with the following content:

    USER="root"
    PASSWORD="1234567"
    HOST="localhost"
    PORT=3306
    
  • Recipe Recommender: In the recipe_recommender folder, create a .env file and add:

    API_KEY=Your_API_Key
    IPADDRESS=192.168.43.52
    
  1. Running the Backend (Ballerina)
  • In the root folder of iwb294-team-raas_Backend, execute the Ballerina code:

    bal run
    
  1. Running the Recipe Recommender
  • In a new terminal, navigate to iwb294-team-raas_Backend and execute:

    python recommender.py
    
  1. Running the Frontend
  • In the root folder of iwb294-team-raas , install dependencies:

    npm install
    
  • Start the Expo development server:

    npx expo start
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •