Nema is a smart food management application designed to reduce food waste by intelligently tracking your pantry items, planning meals based on what needs to be used first, and helping you make the most of every ingredient.
- Expiration-Date Prioritization: Automatically uses ingredients that will expire soon
- Recipe Variety: Ensures diverse meals throughout your week
- Smart Shopping List: Minimizes new purchases by optimizing your existing inventory
- Intuitive Interface: Easily track all your food items
- Expiration Tracking: Get notified before items expire
- Category Organization: Keep your digital pantry organized by food types
- Multi-Item Scanner: Capture and add multiple items at once
- AI Recognition: Intelligent food identification using computer vision
- Barcode Scanning: Quick addition of packaged products
-
Clone the repository
git clone https://github.com/yourusername/nema.git cd nema
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Then edit the
.env
file to add your API keys (see Environment Variables section) -
Start the development server
npm start
-
Open the app on your device using Expo Go by scanning the QR code in the terminal
Create a .env
file with the following variables:
# Required for AI features
EXPO_PUBLIC_OPENAI_API_KEY=your_openai_api_key_here
# Optional - for recipe information
EXPO_PUBLIC_SPOONACULAR_API_KEY=your_spoonacular_api_key_here
# For Firebase authentication
EXPO_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
EXPO_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
⚠️ Security Note: Never commit your.env
file to version control. The.gitignore
file is configured to exclude this file.
- Auth: Simple and secure login/signup process
- Pantry: View and manage your food inventory
- Meal Plan: AI-generated meal plans based on your pantry items
- Scanner: Add items through camera or barcode scanning
- Shopping List: Smart shopping recommendations
The app uses OpenAI's vision models to identify food items from photos:
- Take a photo of any food item
- AI analyzes the image and identifies the food
- Food name and category are automatically populated
Our proprietary algorithm:
- Analyzes your pantry items and expiration dates
- Scores recipes based on ingredient availability and expiry dates
- Generates optimal meal combinations to minimize waste
- Provides explanations for why each recipe was selected
nema/
├── app/ # Main application screens
│ ├── (tabs)/ # Tab-based navigation
│ ├── _layout.tsx # Root layout component
│ ├── add-item.tsx # Add item screen
│ ├── auth.tsx # Authentication screen
│ └── ... # Other screens
├── components/ # Reusable components
│ ├── MultiItemScanner.tsx # Camera scanning component
│ ├── HeaderBar.tsx # App header component
│ └── ... # Other components
├── constants/ # App constants
├── store/ # State management
│ ├── pantryStore.ts # Pantry state
│ ├── mealPlannerStore.ts # Meal planner state
│ └── ... # Other stores
├── utils/ # Utility functions
│ ├── openaiVision.ts # OpenAI Vision API integration
│ └── ... # Other utilities
└── ...
For the best development experience:
npm start
To use full native capabilities:
# Install EAS CLI
npm install -g eas-cli
# Login to your Expo account
eas login
# Create a development build
eas build --profile development --platform ios
# or
eas build --profile development --platform android
This project is licensed under the MIT License.