Hey there! Welcome to Pantrypal, the smartest way to manage your kitchen, track nutrition, and discover recipes you'll love.
You know that feeling when you open your fridge and think "I have no idea what to cook"? Or when you find that tomato that's been hiding in the back for way too long? Yeah, we've all been there.
Pantrypal is your personal kitchen assistant that:
- π€ Recommends recipes based on what you actually have at home
- π₯ Respects your dietary preferences (Vegetarian, Vegan, Keto, etc.)
- π Tracks your nutrition goals and daily intake
- ποΈ Helps you plan meals for the week
- β° Alerts you before ingredients expire
- πͺ Helps you achieve your health goals
Think of it as having a smart nutritionist and chef who knows exactly what's in your kitchen and suggests personalized meals that fit your diet and health goals.
Our intelligent recommendation algorithm scores recipes based on:
- Pantry Match (0-50 points) - How many ingredients you already have
- Dietary Fit (0-30 points) - Matches your dietary preferences perfectly
- Nutrition Alignment (0-20 points) - Fits your remaining calorie budget
Example: If you're vegetarian with 800 calories left, we'll recommend "Veggie Stir Fry" (Score: 85) over "Beef Stew" (Score: 10).
- Track all your ingredients in one place
- See what's expiring soon with personalized alerts
- Get dietary-specific item suggestions (e.g., "Tofu for your Vegan diet")
- Quick stats: Total items, expiring count, categories
Every screen adapts to YOU:
- Home: Personalized greeting, recipes matching your diet + pantry
- Profile: Your info, dietary badge, nutrition dashboard
- Pantry: Custom suggestions based on your dietary preference
- Browse: Filter recipes for your diet with live count
Track your daily nutrition with beautiful progress bars:
- Calories: See progress toward your daily goal
- Protein: Track your protein intake
- Carbs & Fats: Complete macro tracking
- Auto-Reset: Automatically resets at midnight
- Set Custom Goals: Personalized calorie and macro targets
Plan your entire week with smart suggestions:
- Weekly, daily, or custom meal plans
- Assign recipes to specific days and meals
- Track total calories for the week
- Filter by dietary restrictions automatically
- Syncs to Firebase in real-time
- Dynamic greetings based on time of day
- User profile pictures throughout the app
- Dietary preference badges showing your diet
- Real-time stats (pantry count, favorites, expiring items)
- Progress indicators for nutrition goals
Perfect if you:
- β€οΈ Care about your health and nutrition
- π± Follow a specific diet (Vegetarian, Vegan, Keto, etc.)
- π° Want to save money by reducing food waste
- ποΈ Have fitness/nutrition goals
- π¨βπ³ Love cooking but need inspiration
- π± Want a modern, personalized app experience
Algorithm considers:
β Ingredients you have (90% match = "You can make this!")
β Your dietary preference (Vegetarian recipes for vegetarians)
β Your nutrition goals (Fits your remaining calories)
β Recipe difficulty and cooking time
Result: Top 10 recipes ranked by personalization score
Supported Diets:
- π₯¬ Vegetarian
- π± Vegan
- π Gluten-Free
- π₯ Keto
- π Paleo
- π Halal
- β‘οΈ Kosher
- π½οΈ None (All recipes)
Features:
- Set during signup or change anytime in Profile
- Filters recipes across the entire app
- Shows dietary-appropriate pantry suggestions
- Badges display your diet on your profile
Located in Profile Fragment:
- Today's nutrition summary
- Visual progress bars for all macros
- Remaining calories/protein/carbs/fat
- "Set Nutrition Goals" button for customization
Default Goals:
- 2000 calories
- 50g protein
- 250g carbs
- 70g fat
HomeFragment:
- "Good Morning, [Your Name]!"
- Dietary preference shown if set
- Expiring items: "[Name], these items are expiring soon"
- Recipe suggestions based on your pantry + diet
PantryFragment:
- "Hi [Name], you have X items in your pantry"
- "Suggested items for your [Diet] diet: Tofu, Legumes..."
- Personalized expiring alerts
BrowseFragment:
- "Recipes for my [Diet] diet" filter chip
- Live count: "12 matching recipes"
- Sorted by recommendation score
- MVVM Architecture (Model-View-ViewModel)
- Repository Pattern for data access
- LiveData for reactive UI updates
- Firebase integration for real-time sync
Language: Java (Android)
Min SDK: API 24 (Android 7.0)
Database: Room (local) + Firestore (cloud)
Auth: Firebase Authentication
UI: Material Design 3
Navigation: Navigation Component
Binding: ViewBinding
- Authentication: Email/Password + Google Sign-In
- Firestore Collections:
users/- User profiles with nutrition datausers/{userId}/pantryItems/- User's pantryusers/{userId}/favorites/- Favorite recipesmeal_plans/- Weekly meal plans
- Real-time Sync: All data updates instantly across devices
User.java- User profile + nutrition trackingRecipe.java- Recipe data with nutrition infoPantryItem.java- Pantry ingredientsMealPlan.java- Weekly meal planning
UserViewModel- User data + nutritionRecipeViewModel- Recipes + favoritesPantryItemViewModel- Pantry management
RecipeRecommendationService- AI recommendation algorithmFirebaseAuthManager- Authentication handling
FirebaseUserRepository- User CRUD operationsFirebasePantryRepository- Pantry managementFirebaseFavoritesRepository- Favorites trackingFirebaseMealPlanRepository- Meal planningRecipeRepository- Local recipe database
- MainActivity β Splash screen
- OnboardingActivity β First-time user introduction
- SignUpActivity β Create account with dietary preference
- LoginActivity β Email/password login
-
Home π
- Personalized greeting
- Quick stats (pantry count, favorites)
- Expiring items alert
- AI-recommended recipes
-
Favorites β
- Grid view of saved recipes
- Synced with Firebase
- Empty state for new users
-
Pantry π¦
- List of all ingredients
- Expiring items section
- Dietary suggestions
- Quick stats
-
Profile π€
- User info (name, email, profile pic)
- Dietary preference badge
- Member since date
- Edit Profile with name + diet
- Nutrition Dashboard with goals
- Change password
- Sign out
- Recipe Detail - Full recipe with tabs (Ingredients, Instructions, Nutrition)
- Browse Recipes - Search + filter by category + dietary preference
- Add Pantry Item - Add ingredients with expiration dates
Primary: #4CAF50 (Fresh Green)
Secondary: #FF9800 (Warm Orange)
Accent: #9C27B0 (Purple)
Error: #F44336 (Red)
Background: #F5F5F5 (Light Gray)
- Headings: Bold, 18-24sp
- Body: Regular, 14-16sp
- Captions: 10-12sp
- Material Cards with elevation
- Circular profile pictures
- Progress bars for nutrition
- Filter chips for categories
- FABs for quick actions
- Bottom sheets for details
Recipe Score = PantryMatch + DietaryFit + NutritionAlignment
Example:
"Veggie Stir Fry" for Vegetarian with 800 cal remaining:
- Pantry: 45/50 (90% ingredients available)
- Dietary: 30/30 (Perfect vegetarian match)
- Nutrition: 15/20 (Fits calorie budget)
= 90/100 Total Score βββββ// Checks daily at app launch
if (lastResetDate < today) {
user.resetDailyNutrition();
// Calories, protein, carbs, fat β 0
}List<String> missing = RecipeRecommendationService
.getMissingIngredients(recipe, pantryItems);
// Output: ["Onions", "Garlic", "Soy Sauce"]
// User can add these to shopping listUser Action β ViewModel β Repository β Firebase
β
LiveData Observer
β
UI Updates Automatically
Example: User updates dietary preference
1. ProfileFragment: user.setDietaryPreference("Vegan")
2. UserViewModel.updateUser(user)
3. FirebaseUserRepository saves to Firestore
4. LiveData observer notifies all fragments
5. HomeFragment auto-updates recipe suggestions
6. BrowseFragment shows "Recipes for my Vegan diet"
7. PantryFragment shows vegan item suggestions
- Firebase Authentication - Secure user accounts
- Password Reset - Email-based password recovery
- Data Encryption - Firebase handles encryption at rest
- User Isolation - Each user only sees their own data
- No Password Storage - Passwords never stored locally
- Real-time Rules - Firestore security rules enforce access
- User authentication & profiles
- Pantry management with expiration tracking
- Recipe database with favorites
- Dietary preference system
- AI-powered recommendations
- Nutrition tracking dashboard
- Meal planning infrastructure
- Complete personalization across all screens
- Meal Planning UI (calendar view)
- Shopping list generation
- Barcode scanner for adding items
- Recipe upload by users
- Social features (share recipes)
- Dark mode
- Offline mode
- Widget for quick pantry view
- Recipe rating system
- Cooking timers
- Voice commands
- AR for measuring portions
- Integration with smart fridges
- Meal prep suggestions
- Cost tracking per recipe
- Android Studio Arctic Fox or later
- JDK 11+
- Android SDK API 24+
- Firebase account
- Clone the repository
git clone https://github.com/yourusername/pantrypal.git
cd pantrypal- Configure Firebase
- Create a Firebase project at console.firebase.google.com
- Add Android app with package:
com.pantrypal - Download
google-services.json - Place in
app/directory
- Enable Firebase Services
- Authentication (Email/Password + Google)
- Firestore Database
- Create Firestore indexes if needed
- Build and Run
./gradlew assembleDebugapp/src/main/java/com/pantrypal/
βββ data/
β βββ model/ # Data classes (User, Recipe, etc.)
β βββ repository/ # Firebase repositories
β βββ service/ # Business logic (Recommendations)
β βββ database/ # Room database
β βββ firebase/ # Firebase managers
βββ ui/
β βββ home/ # Home screen
β βββ profile/ # Profile + Nutrition
β βββ pantry/ # Pantry management
β βββ browse/ # Recipe browsing
β βββ recipe/ # Recipe details
β βββ auth/ # Login/Signup
β βββ viewmodel/ # ViewModels
βββ util/ # Utilities & helpers
RecipeRecommendationService- Core recommendation algorithmFirebaseUserRepository- User data managementUser- User model with nutrition trackingMealPlan- Meal planning modelHomeFragment- Personalized dashboard
We welcome contributions! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Coding Standards:
- Follow Android best practices
- Use ViewBinding (not findViewById)
- Write clean, commented code
- Test on multiple devices
- Follow Material Design guidelines
This project is licensed under the MIT License - see the LICENSE file for details.
- Material Design 3 for beautiful UI components
- Firebase for backend infrastructure
- RecyclerView for smooth scrolling
- LiveData for reactive updates
- Navigation Component for seamless navigation
Developer: Chanpreet Singh Email: your.email@example.com Project Link: https://github.com/yourusername/pantrypal
π¦ Total Features: 15+ major features
π¨ UI Screens: 10+ screens
πΎ Data Models: 6 main models
π₯ Firebase Collections: 4 collections
π ViewModels: 4 ViewModels
π€ AI Algorithm: 100-point scoring system
β Dietary Options: 8 diet types
π Nutrition Tracking: 4 macros tracked
Coming soon! Screenshots of the beautiful UI will be added here.
Happy Cooking! π¨βπ³π©βπ³
Remember: The best meal is the one that fits your diet, uses what you have, and helps you reach your health goals. Let's make that easier!
Last Updated: January 2025 Version: 2.0.0 Status: Feature-Complete π