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.
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.
- 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.
-
Clone the Repositories
git clone https://github.com/rithakith/iwb294-team-raas.git git clone https://github.com/rithakith/iwb294-team-raas_Backend.git
-
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
- Running the Backend (Ballerina)
-
In the root folder of iwb294-team-raas_Backend, execute the Ballerina code:
bal run
- Running the Recipe Recommender
-
In a new terminal, navigate to iwb294-team-raas_Backend and execute:
python recommender.py
- Running the Frontend
-
In the root folder of iwb294-team-raas , install dependencies:
npm install
-
Start the Expo development server:
npx expo start