Inspiration
Pantry Pal was inspired by the common problem of food waste and the challenge of meal planning with available ingredients. Many people buy groceries without a clear plan, leading to expired items and wasted money. We wanted to create a smart solution that helps users make the most of their pantry items while reducing food waste and saving money.
What it does
Pantry Pal is a smart pantry management web application that helps users track their food inventory and get AI-powered cooking suggestions. Users can:
- Track Inventory: Add, edit, and remove food items with quantities and units
- Smart Recipe Suggestions: Get personalized recipe recommendations based on available ingredients using Gemini AI
- Meal Planning: Receive cooking advice and meal ideas from a virtual chef assistant
- User Authentication: Secure login system using Auth0 for personalized experiences
- Real-time Chat: Interactive AI chat interface that understands your pantry context The app provides a clean, intuitive interface where users can manage their pantry on the left side and chat with an AI assistant on the right side for instant cooking guidance.
How we built it
Frontend:
- React with TypeScript for type-safe, component-based development
- Vite for fast development and building
- Auth0 for secure user authentication
- Firebase Firestore for real-time data persistence
- CSS Grid & Flexbox for responsive layouts
- React Icons for consistent iconography
Backend:
- Node.js with Express for API server
- Google Gemini AI for intelligent recipe suggestions and cooking advice
- CORS for cross-origin requests
- Environment variables for secure API key management
Key Features:
- Custom modals for adding/editing items with validation
- Real-time chat interface with loading states
- Responsive design that works on desktop and mobile
- Error handling and user feedback systems
Challenges we ran into
Authentication Integration: Integrating Auth0 with Firebase required careful configuration and handling of different authentication states.
AI Model Compatibility: The initial Gemini API integration failed due to deprecated model names, requiring updates to use the current gemini-1.5-flash model.
Data Persistence: Setting up Firebase Firestore with proper security rules and handling the transition from local storage to cloud database.
Response Formatting: Ensuring AI responses were properly formatted with line breaks and readable structure in the chat interface.
Cross-Origin Requests: Configuring CORS properly to allow frontend-backend communication during development.
What we learned
AI API Integration: How to properly integrate and format responses from modern AI models like Gemini
Authentication Flows: Best practices for implementing secure user authentication with Auth0
Real-time Databases: Working with Firebase Firestore for real-time data synchronization
TypeScript Best Practices: Leveraging TypeScript for better code quality and developer experience
API Design: Creating RESTful APIs with proper error handling and response formatting
State Management: Managing complex application state with React hooks and custom hooks
What's next for Pantry Pal
Shopping Lists: Generate shopping lists based on planned recipes and current inventory
Recipe Favorites: Allow users to save and organize favorite recipes
Nutritional Information: Integrate nutritional data for better meal planning

Log in or sign up for Devpost to join the conversation.