Skip to content

A collaborative pantry + grocery app that removes the stress, guessing, and roommate politics of sharing food and essentials.

Notifications You must be signed in to change notification settings

codebyellalesperance/pantry

Repository files navigation

Pantry - Smart Kitchen Inventory Management 🏠

A beautiful, secure, and production-ready mobile app for managing household kitchen inventory with household sharing, receipt scanning, and real-time collaboration.


πŸš€ Quick Start

Your app is production-ready! Here's how to get started:

Development

npm install
npm start

Ready for App Store?

Read START_HERE.md first! It's your 5-step guide to launching.


✨ Features

Core Functionality

  • πŸ“Έ Receipt Scanning - Snap photos to add items instantly
  • πŸ›’ Grocery Lists - Never forget what you need
  • πŸ‘₯ Household Sharing - Real-time collaboration with roommates/family
  • πŸ“Š Low Stock Alerts - Know when to restock
  • 🏷️ Custom Categories - Organize your way
  • πŸ“± Real-time Sync - Access from any device
  • 🎨 Beautiful UI - Modern, intuitive design

Security & Compliance

  • πŸ”’ Enterprise Security - Row-level security (RLS) policies
  • πŸ›‘οΈ GDPR Compliant - Full privacy compliance
  • πŸ” Secure Auth - Supabase authentication
  • πŸ“Š Analytics - Crash reporting & error tracking
  • βœ… Production Ready - Optimized for scale

πŸ“š Documentation

🎯 Start Here (Read These First!)

πŸ“± App Store Submission

πŸ” Security & Database

βš–οΈ Legal & Compliance

πŸ“Š Analytics & Monitoring

πŸ”§ Setup & Configuration


πŸ—οΈ Tech Stack

Frontend

  • React Native (Expo)
  • TypeScript - Type safety
  • NativeWind - Tailwind CSS for React Native
  • React Navigation - Navigation

Backend & Services

  • Supabase - Backend-as-a-Service
    • PostgreSQL database
    • Row-level security (RLS)
    • Authentication
    • Real-time subscriptions
    • File storage
  • Sentry - Crash reporting & error tracking
  • EAS Build - Native builds & submission

Features

  • Image Recognition - ML Kit text recognition
  • Barcode Scanning - expo-barcode-scanner
  • Camera - expo-camera
  • Deep Linking - Expo Linking

πŸš€ Getting Started

Prerequisites

  • Node.js 18+ installed
  • Expo CLI installed
  • Supabase account
  • (Optional) Apple/Google developer accounts for building

Installation

  1. Clone the repository

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

    npm install
  3. Set up environment

    cp .env.example .env
    # Edit .env with your Supabase credentials
  4. Start development

    npm start

Building for Production

# Install EAS CLI
npm install -g eas-cli

# Login
eas login

# Build for iOS
eas build --profile production --platform ios

# Build for Android
eas build --profile production --platform android

See APP_STORE_SUBMISSION_CHECKLIST.md for complete submission guide.


πŸ” Security Features

  • βœ… Row-level security (RLS) on all tables
  • βœ… Function search_path protection
  • βœ… Encrypted data in transit and at rest
  • βœ… Secure authentication
  • βœ… GDPR compliant
  • βœ… Account deletion flow
  • βœ… Privacy-first design

πŸ“Š Performance

  • βœ… Pagination ready for large datasets
  • βœ… Optimized RLS policies
  • βœ… Indexed database queries
  • βœ… Virtualized lists for smooth scrolling
  • βœ… Efficient real-time subscriptions
  • βœ… Ready for 10,000+ items per household

πŸ“± Supported Platforms

  • βœ… iOS (iPhone & iPad)
  • βœ… Android (Phone & Tablet)
  • ⚠️ Web (not yet configured)

πŸ—‚οΈ Project Structure

Pantry/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # Reusable components
β”‚   β”œβ”€β”€ contexts/            # React contexts (Auth, etc.)
β”‚   β”œβ”€β”€ hooks/               # Custom hooks
β”‚   β”œβ”€β”€ screens/             # App screens
β”‚   β”œβ”€β”€ services/            # API services
β”‚   β”œβ”€β”€ styles/              # Styled components
β”‚   β”œβ”€β”€ types/               # TypeScript types
β”‚   └── utils/               # Utility functions
β”‚       β”œβ”€β”€ analyticsEnhanced.ts    # Enhanced analytics
β”‚       └── crashReporting.ts       # Sentry integration
β”œβ”€β”€ lib/
β”‚   └── supabase.ts          # Supabase client
β”œβ”€β”€ database/                # Database migrations & docs
β”‚   β”œβ”€β”€ fix_rls_performance.sql     # RLS optimizations
β”‚   β”œβ”€β”€ fix_search_path_security.sql # Security fixes
β”‚   └── README_SECURITY_FIXES.md    # Security guide
β”œβ”€β”€ assets/                  # Images, icons, etc.
β”œβ”€β”€ scripts/                 # Helper scripts
β”œβ”€β”€ .env                     # Environment variables (not in git)
β”œβ”€β”€ app.json                 # Expo configuration
β”œβ”€β”€ eas.json                 # EAS build configuration
└── package.json             # Dependencies


🎯 Current Status

βœ… Complete (100%)

  • Code written and tested
  • Database designed and optimized
  • Security hardened
  • Legal documents written
  • Analytics & monitoring configured
  • Performance optimized
  • Documentation complete

⚠️ Needs Action

  • Change bundle IDs for App Store
  • Create developer accounts
  • Host legal documents online
  • Take app screenshots
  • Submit to stores

See START_HERE.md for what to do next!


πŸ“ Environment Variables

Required in .env:

EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
EXPO_PUBLIC_ENV=development
EXPO_PUBLIC_SENTRY_DSN=optional-sentry-dsn

πŸ”§ Configuration

Database Setup

  1. Run SQL migrations in order:
    • database/fix_rls_performance.sql (performance)
    • database/fix_search_path_security.sql (security)
    • database/OPTIMIZATION.sql (indexes)

Building

Configure eas.json for your bundle IDs and credentials.

Legal

  • Privacy Policy: PRIVACY_POLICY.md
  • Terms of Service: TERMS_OF_SERVICE.md

Host these online before submission!


πŸ§ͺ Testing

Running Tests

npm start        # Start dev server
npm test         # Run tests (if configured)

Device Testing

  • iOS: Use Expo Go app or iOS simulator
  • Android: Use Expo Go app or Android emulator

πŸš€ Deployment

App Stores

See APP_STORE_SUBMISSION_CHECKLIST.md for:

  • iOS App Store submission
  • Google Play Store submission
  • Screenshot requirements
  • Review guidelines

Quick Deploy

./scripts/prepare-for-store.sh

🀝 Contributing

This is a production app. Follow these guidelines:

  • Write tests for new features
  • Update documentation
  • Follow code style
  • Review security implications
  • Update legal docs if needed

πŸ“„ License

[Your License Here]


πŸ“ž Support

Resources

Contact


πŸŽ‰ Acknowledgments


πŸ“ˆ Roadmap

Current Version (1.0.0)

  • βœ… Core pantry management
  • βœ… Receipt scanning
  • βœ… Household sharing
  • βœ… Grocery lists
  • βœ… Low stock alerts

Future Versions

  • πŸ”² Recipe integration
  • πŸ”² Meal planning
  • πŸ”² Price tracking
  • πŸ”² Shopping history
  • πŸ”² Export functionality
  • πŸ”² Premium features

Built with ❀️ using React Native & Supabase

Ready to launch? Read START_HERE.md! πŸš€


Last Updated: December 19, 2024
Version: 1.0.0
Status: βœ… Production Ready

About

A collaborative pantry + grocery app that removes the stress, guessing, and roommate politics of sharing food and essentials.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors