Discover amazing recipes with what you have in your kitchen!
A modern, intelligent recipe discovery application that helps you find delicious recipes based on available ingredients, dietary preferences, and cooking time. Built with React and enhanced with smart caching, offline support, user personalization, and comprehensive analytics. Features include advanced API optimization, local recipe fallbacks, and privacy-focused user tracking.
Live Demo: https://aesthetic-horse-e40fa6.netlify.app/
The Surprise Me feature is our latest addition that transforms cooking from routine to adventure! This intelligent recipe discovery tool helps you make the most of what's already in your kitchen.
What makes it special:
- Smart Ingredient Matching: Input any ingredients you have, and our advanced algorithm finds recipes that use them
- Interactive Ingredient Builder: Add ingredients with ease using our intuitive input system
- Popular Suggestions: Quick-add buttons for common ingredients to get you started
- Recipe Combinations: Pre-made ingredient combinations for quick inspiration
- Advanced Filtering: Filter by difficulty level and cooking time
- Match Percentage: See how well each recipe matches your available ingredients
- Visual Feedback: Beautiful animations and loading states make the experience delightful
How it works:
- Navigate to the "Surprise Me" page
- Add ingredients you have available (type or use quick-add buttons)
- Set your preferences for difficulty and cooking time
- Click "Surprise Me with Recipes!"
- Discover perfectly matched recipes with ingredient match percentages
- Get cooking tips and substitution suggestions
- Advanced Search: Find recipes by name, ingredients, or cuisine type
- Animated Search Bar: Beautiful, responsive search interface with smooth animations
- Nutrition-Based Filtering: Filter by calories, protein, carbs, and other nutritional values
- Equipment-Based Filtering: Find recipes based on available cooking equipment
- Cooking Difficulty Levels: Easy, medium, and advanced recipe difficulty filtering
- Ingredient Substitution Suggestions: Smart suggestions for ingredient alternatives
- Detailed Recipe Pages: Complete recipes with ingredients, instructions, and nutritional info
- Intelligent Favorites System: Save and organize your favorite recipes with collections
- Shopping List Generator: Automatically create shopping lists from recipe ingredients
- Recipe Scaling Calculator: Adjust serving sizes with automatic ingredient scaling
- Custom Recipe Collections: Organize recipes by meal type, occasion, or preference
- Cooking Timer: Built-in timers for each cooking step
- Recipe Rating & Review System: Community-driven ratings with detailed reviews
- Social Sharing: Share favorite recipes on social media platforms
- Touch Gestures: Mobile-optimized swipe and tap interactions
- Pull-to-Refresh: Refresh content with intuitive mobile gestures
- Progressive Web App (PWA): Install on mobile/desktop for native app experience
- Offline Support: Access cached recipes without internet connection
- Smart Caching System: Intelligent API response caching with 70-80% reduction in API calls
- User Preferences & Personalization: Save dietary preferences and favorite cuisines
- Mobile Enhancement: Touch gestures, responsive layouts, and mobile-first design
- Image Optimization: Lazy loading, WebP format support, and progressive loading
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/yourusername/recipe-finder.git cd recipe-finder -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000to see the application
npm run buildThe application is configured for easy deployment on Netlify:
npm run netlify-build- React 18.3.1 - Modern React with hooks and concurrent features
- React Router DOM 6.28.0 - Client-side routing and navigation
- Vite 5.4.10 - Lightning-fast build tool and development server
- Tailwind CSS 3.4.16 - Utility-first CSS framework for rapid UI development
- Framer Motion 11.15.0 - Production-ready motion library for React
- GSAP 3.12.5 - Professional-grade animation library
- Lucide React 0.460.0 - Beautiful, customizable icons
- Headless UI 2.2.0 - Unstyled, accessible UI components
- Axios 1.7.9 - Promise-based HTTP client for API requests
- Smart Caching System - LRU cache with TTL for optimal performance
- API Usage Management - Daily usage tracking and monitoring (150 calls/day limit)
- Local Recipe Database - 65+ fallback recipes for offline functionality
- Service Worker - Offline support with multiple caching strategies
- User Preferences Storage - Persistent user settings and personalization
- Analytics & Tracking - Privacy-focused user behavior analytics
- ESLint - Code linting and quality enforcement
- PostCSS & Autoprefixer - CSS processing and vendor prefixing
- Netlify CLI - Deployment and hosting integration
recipe-finder/
โโโ public/
โ โโโ sw.js # Service Worker for PWA
โโโ src/
โ โโโ components/
โ โ โโโ common/
โ โ โ โโโ SplashScreen.jsx # Enhanced splash screen
โ โ โ โโโ ApiStatusCard.jsx # API usage monitoring display
โ โ โ โโโ UserPreferencesModal.jsx # User preferences configuration
โ โ โโโ layout/
โ โ โ โโโ Header.jsx # Navigation header
โ โ โโโ recipe/
โ โ โ โโโ CookingTimer.jsx # Interactive cooking timer
โ โ โ โโโ RecipeCard.jsx # Recipe display card with ratings
โ โ โ โโโ RecipeEnhancements.jsx # Recipe interaction features
โ โ โ โโโ ShoppingList.jsx # Shopping list generator
โ โ โโโ ui/
โ โ โโโ AnimatedSearchBar.jsx # Enhanced search interface
โ โโโ context/
โ โ โโโ AppContext.jsx # Global state management
โ โโโ hooks/
โ โ โโโ useApp.js # Custom React hooks
โ โ โโโ useMobile.js # Mobile enhancement hooks
โ โโโ pages/
โ โ โโโ HomePage.jsx # Landing page with caching
โ โ โโโ SurprisePage.jsx # โญ Surprise Me feature
โ โ โโโ SearchResultsPage.jsx # Search results with advanced filtering
โ โ โโโ RecipeDetailsPage.jsx # Individual recipe view with reviews
โ โ โโโ FavoritesPage.jsx # Saved recipes with collections
โ โ โโโ MealPlannerPage.jsx # Meal planning interface
โ โ โโโ StatsPage.jsx # Cooking statistics and analytics
โ โโโ services/
โ โ โโโ recipeService.js # Enhanced API layer with caching & fallbacks
โ โโโ utils/
โ โ โโโ cacheManager.js # Smart LRU caching system
โ โ โโโ apiUsageManager.js # API usage tracking and monitoring
โ โ โโโ userPreferences.js # User preferences management
โ โ โโโ serviceWorker.js # Service worker utilities
โ โ โโโ ratingReview.js # Rating and review system
โ โ โโโ analytics.js # Privacy-focused analytics
โ โ โโโ localStorage.js # Enhanced local data management
โ โ โโโ performance.js # Performance optimization
โ โโโ App.jsx # Main application component
โ โโโ main.jsx # Application entry point with SW
โ โโโ index.css # Global styles
โโโ Configuration files...
- Intuitive Navigation: Clear, consistent navigation patterns
- Accessibility First: WCAG 2.1 compliant with keyboard navigation support
- Mobile-First: Responsive design that works beautifully on all devices
- Performance Optimized: Fast loading times and smooth interactions
- Modern Aesthetic: Clean, contemporary design with carefully chosen typography
- Dark Theme Support: Elegant dark mode that's easy on the eyes
- Smooth Animations: Delightful micro-interactions that enhance usability
- Consistent Branding: Cohesive color scheme and visual hierarchy
- Component-Based Architecture: Reusable, maintainable React components
- Type Safety: ESLint configuration for code quality
- Hot Module Replacement: Instant feedback during development
- Build Optimization: Automatic code splitting and optimization
- Smart Caching System: LRU cache with TTL reducing API calls by 70-80%
- API Usage Monitoring: Real-time tracking with 150 calls/day limit management
- Local Recipe Fallback: 65+ curated recipes for offline functionality
- Cache-First Strategy: Intelligent data retrieval prioritizing cached content
- Usage Analytics: Detailed API usage statistics and optimization insights
-
Quick Start with Popular Ingredients
Navigate to "Surprise" โ Click "Rice + Vegetables" โ Get instant recipes! -
Custom Ingredient Search
Add ingredients: "Chicken, Tomatoes, Onions" Set difficulty: "Easy (< 30 min)" Filter time: "Quick (< 30 min)" Get personalized recipe suggestions! -
Advanced Filtering
Input multiple ingredients โ Apply difficulty and time filters โ View match percentages โ Select recipes with highest compatibility
- Search for recipes by cuisine or dietary preference
- Save favorites to your personal collection
- Use the meal planner to schedule meals for the week
- Generate shopping lists for all planned meals
- Set cooking timers when preparing meals
Create a .env file in the root directory:
VITE_SPOONACULAR_API_KEY=your_api_key_here
VITE_APP_NAME=Recipe Finder
VITE_APP_VERSION=2.0.0
VITE_ENABLE_ANALYTICS=true
VITE_CACHE_TTL=1800000
VITE_API_DAILY_LIMIT=150The application uses Vite with optimized settings:
- Code Splitting: Automatic vendor and feature-based splitting
- Tree Shaking: Dead code elimination
- Minification: Terser-based compression
- Source Maps: Disabled in production for security
Netlify deployment settings in netlify.toml:
[build]
publish = "dist"
command = "npm run build"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Install dependencies:
npm install - Start development server:
npm run dev - Make your changes and test thoroughly
- Commit with descriptive messages:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add comments for complex logic
- Ensure all tests pass
- Update documentation for new features
- Smart API Optimization: Intelligent caching reducing API calls by 70-80%
- Offline Support: Service worker with local recipe fallbacks
- User Personalization: Comprehensive preferences and recommendation system
- Advanced Filtering: Nutrition-based, equipment-based, and difficulty filtering
- Mobile Enhancement: Touch gestures, responsive design, and mobile-first UX
- Rating & Review System: Community-driven recipe evaluation
- Privacy-Focused Analytics: User behavior tracking with privacy protection
- Image Optimization: Lazy loading with WebP support and progressive loading
- Voice search integration with speech recognition
- Recipe video tutorials and step-by-step cooking videos
- Real-time cooking mode with voice instructions
- Grocery delivery integration with major retailers
- Recipe collaboration and sharing between users
- AI-powered meal planning based on health goals
- Integration with smart kitchen appliances
- Seasonal recipe recommendations based on local ingredients
This project is licensed under the MIT License - see the LICENSE file for details.
- Recipe Data: Powered by Spoonacular API
- Icons: Beautiful icons from Lucide React
- Animations: Smooth animations with Framer Motion
- Deployment: Hosted on Netlify
- Design Inspiration: Modern cooking and food discovery apps
- Issues: Report bugs or request features via GitHub Issues
- Documentation: Comprehensive guides in the
/docsfolder - Community: Join our Discord server for discussions
- Email: aniruddhas387@gmail.com
- API Optimization: 70-80% reduction in API calls through smart caching
- Offline Capability: 65+ local recipes available without internet
- Mobile Performance: Optimized touch gestures and responsive design
- User Personalization: Comprehensive preference system with 10+ dietary filters
- Cache Efficiency: LRU caching with TTL management for optimal performance
- Privacy-First: Analytics system with user data protection
Happy Cooking! ๐จโ๐ณ๐ฉโ๐ณ
Transform your kitchen into a place of culinary adventure with Recipe Finder's intelligent recipe discovery, smart API optimization, offline support, and personalized cooking experience!