Skip to content

Latest commit

ย 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿณ FoodRecipe App

A beautiful and modern React Native recipe application built with Expo, featuring a clean UI design and seamless bookmark functionality. Discover, save, and explore delicious recipes from around the world.

โœจ Features

๐ŸŽฏ Core Functionality

  • Recipe Discovery: Browse through a curated collection of delicious recipes
  • Smart Bookmarking: Save your favorite recipes with real-time synchronization
  • Category Filtering: Organize recipes by meal type and cuisine
  • Detailed Recipe Views: Complete with ingredients, steps, and cooking instructions
  • Search Functionality: Find recipes quickly with the search bar

๐ŸŽจ User Experience

  • Modern UI Design: Clean, intuitive interface with professional color palette
  • Responsive Layout: Optimized for both mobile and tablet devices
  • Smooth Navigation: Seamless transitions between screens
  • Visual Recipe Cards: Beautiful recipe presentations with images and ratings
  • Empty State Handling: User-friendly messages when no bookmarks exist

๐Ÿ”ง Technical Features

  • Real-time Sync: Bookmark changes sync across all screens instantly
  • Local Storage: Persistent bookmark data using AsyncStorage
  • TypeScript: Full type safety and better development experience
  • Tailwind CSS: Utility-first styling with NativeWind
  • File-based Routing: Clean navigation structure with Expo Router

๐Ÿ“ฑ Screenshots

Main Features

  • Home Screen: Browse all recipes with category filters
  • Recipe Detail: Complete recipe information with bookmark toggle
  • Saved Recipes: Your personal collection of bookmarked recipes
  • Search: Find recipes by name or ingredients

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Expo CLI
  • iOS Simulator (for iOS) or Android Emulator (for Android)

Installation

  1. Clone the repository

    git clone <your-repo-url>
    cd FoodRecipe
  2. Install dependencies

    npm install
  3. Start the development server

    npm start
    # or
    npx expo start
  4. Run on your preferred platform

    # For iOS
    npm run ios
    
    # For Android
    npm run android
    
    # For Web
    npm run web

๐Ÿ“ Project Structure

FoodRecipe/
โ”œโ”€โ”€ app/                          # Main application directory
โ”‚   โ”œโ”€โ”€ (tabs)/                   # Tab navigation screens
โ”‚   โ”‚   โ”œโ”€โ”€ main.tsx             # Home screen with recipe list
โ”‚   โ”‚   โ””โ”€โ”€ saved.tsx            # Saved recipes screen
โ”‚   โ”œโ”€โ”€ screens/                  # Individual screens
โ”‚   โ”‚   โ””โ”€โ”€ recipeDetail.tsx     # Recipe detail view
โ”‚   โ”œโ”€โ”€ hooks/                    # Custom React hooks
โ”‚   โ”‚   โ””โ”€โ”€ useBookmark.ts       # Bookmark management hook
โ”‚   โ”œโ”€โ”€ constants.ts             # App constants and data
โ”‚   โ”œโ”€โ”€ _layout.tsx              # Root layout configuration
โ”‚   โ””โ”€โ”€ index.tsx                # Entry point
โ”œโ”€โ”€ components/                   # Reusable UI components
โ”‚   โ”œโ”€โ”€ BookmarkRecipe.tsx       # Saved recipes list component
โ”‚   โ”œโ”€โ”€ Category.tsx             # Category filter component
โ”‚   โ”œโ”€โ”€ Header.tsx               # App header component
โ”‚   โ”œโ”€โ”€ RecipeList.tsx           # Recipe grid component
โ”‚   โ””โ”€โ”€ SearchBar.tsx            # Search functionality component
โ”œโ”€โ”€ assets/                       # Static assets
โ”‚   โ”œโ”€โ”€ fonts/                   # Custom fonts
โ”‚   โ””โ”€โ”€ images/                  # App images and icons
โ””โ”€โ”€ package.json                 # Dependencies and scripts

๐Ÿ› ๏ธ Technologies Used

Core Technologies

  • React Native: Cross-platform mobile development
  • Expo: Development platform and tools
  • TypeScript: Type-safe JavaScript
  • Expo Router: File-based navigation

Styling & UI

  • NativeWind: Tailwind CSS for React Native
  • Tailwind CSS: Utility-first CSS framework
  • Expo Vector Icons: Icon library

State Management & Storage

  • React Hooks: Local state management
  • AsyncStorage: Local data persistence
  • Custom Hooks: Reusable logic

Development Tools

  • ESLint: Code linting
  • Babel: JavaScript compiler
  • TypeScript: Static type checking

๐ŸŽจ Design System

Color Palette

Colors = {
  primary: '#FF6D28',        // Appetizing orange
  primaryDark: '#E14D2A',    // Deep orange
  primaryLight: '#FF9F45',   // Soft orange
  background: '#F8F7F2',     // Creamy background
  text: '#2D2D2D',           // Main text
  textSecondary: '#5C5C5C',  // Secondary text
}

Typography

  • Fonts: Custom fonts with SpaceMono-Regular
  • Sizes: Responsive text sizing with Tailwind classes
  • Weights: Bold for headings, regular for body text

๐Ÿ”ง Key Components

useBookmark Hook

The heart of the bookmark system with real-time synchronization:

const { recipes, savedBookmark } = useBookmark();

Features:

  • Automatic data persistence with AsyncStorage
  • Real-time synchronization across all components
  • Simple refresh trigger system for updates

Recipe Data Structure

interface Recipe {
  id: string;
  name: string;
  image: string;
  rating: number;
  categoryId: string;
  ingredients: string[];
  steps: string[];
  time: number;
  difficulty: 'easy' | 'medium' | 'hard';
  calories: number;
  r_color: string;
  description: string;
  saved: boolean;
}

๐Ÿ“Š Recipe Categories

The app includes 8 main categories:

  • Breakfast
  • Lunch
  • Dinner
  • Asian
  • Italian
  • Japanese
  • Nepali
  • Indian

๐Ÿ”„ State Management

Bookmark Synchronization

The app uses a simple but effective notification system:

  • Global Refresh Trigger: Notifies all components of changes
  • Automatic Updates: Components refresh data when changes occur
  • Persistent Storage: Bookmarks saved locally with AsyncStorage

Data Flow

  1. User toggles bookmark โ†’ savedBookmark() function called
  2. Local state updated โ†’ AsyncStorage updated
  3. Refresh trigger activated โ†’ All components notified
  4. Components reload data โ†’ UI updates automatically

๐Ÿš€ Available Scripts

npm start          # Start Expo development server
npm run android    # Run on Android emulator
npm run ios        # Run on iOS simulator
npm run web        # Run on web browser
npm run lint       # Run ESLint for code quality

๐Ÿ“ฑ Platform Support

  • โœ… iOS (iPhone & iPad)
  • โœ… Android (Phone & Tablet)
  • โœ… Web (Progressive Web App)

๐Ÿ”ฎ Future Enhancements

  • User authentication system
  • Recipe sharing functionality
  • Offline recipe storage
  • Recipe ratings and reviews
  • Meal planning calendar
  • Recipe recommendations
  • Nutritional information
  • Cooking timer integration

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Expo Team: For the amazing development platform
  • React Native Community: For the robust mobile framework
  • Tailwind CSS: For the utility-first styling approach
  • Recipe Data: Curated collection of delicious recipes

๐Ÿ“ž Support

If you have any questions or need help with the project:


Made using React Native & Expo

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages