Skip to content

A modern, cross-platform food ordering application built with React Native, Expo, and Appwrite. This app allows users to browse a menu, search for food, customize orders, manage a cart, and place orders, all with a beautiful and responsive UI.

Notifications You must be signed in to change notification settings

extremecoder-rgb/Pentry

Repository files navigation

Pentry

A modern, cross-platform food ordering application built with React Native, Expo, and Appwrite. This app allows users to browse a menu, search for food, customize orders, manage a cart, and place orders, all with a beautiful and responsive UI.


🚀 Tech Stack

  • React Native 19 – Core framework for building native apps
  • Expo 53 – Toolchain for React Native development
  • Expo Router – File-based routing for navigation
  • Appwrite – Backend-as-a-Service for authentication, database, and storage
  • Zustand – State management for cart and auth
  • NativeWind + Tailwind CSS – Utility-first styling for React Native
  • TypeScript – Type safety and modern JavaScript features
  • Sentry – Error tracking and session replay
  • Other Libraries:
    • @expo/vector-icons, react-native-gesture-handler, react-native-reanimated, react-native-safe-area-context, react-native-screens, use-debounce, clsx, etc.

✨ Features

  • Authentication: Sign up, sign in, and session management via Appwrite
  • Menu Browsing: View food categories and menu items with images and details
  • Search & Filter: Find food by name or category
  • Cart Management: Add, remove, and customize items in your cart
  • Order Summary: View payment breakdown, delivery fee, and discounts
  • Profile: User profile management (placeholder for extension)
  • Responsive UI: Modern, mobile-first design with custom fonts and icons
  • Error Handling: Integrated Sentry for error tracking

📁 Folder Structure

food_ordering-main/
├── app/                # App entry, navigation, and screens
│   ├── (auth)/         # Authentication screens (sign-in, sign-up)
│   ├── (tabs)/         # Main app tabs (home, search, cart, profile)
│   └── _layout.tsx     # Root layout and Sentry integration
├── assets/             # Fonts, icons, and images
├── components/         # Reusable UI components (buttons, cards, inputs)
├── constants/          # Static data, images, and configuration
├── lib/                # Appwrite integration, data, and hooks
├── store/              # Zustand stores for auth and cart
├── globals.css         # Global styles (NativeWind)
├── tailwind.config.js  # Tailwind/NativeWind config
├── package.json        # Project dependencies and scripts
└── ...                 # Other config and environment files

🛠️ Setup & Installation

  1. Clone the repository:
    git clone <repo-url>
    cd Pentry
  2. Install dependencies:
    npm install
    # or
    yarn install
  3. Set up environment variables:
    • Create a .env file with your Appwrite endpoint and project ID:
      EXPO_PUBLIC_APPWRITE_ENDPOINT=your-appwrite-endpoint
      EXPO_PUBLIC_APPWRITE_PROJECT_ID=your-appwrite-project-id
  4. Start the development server:
    npm start
    # or
    yarn start
  5. Run on device or emulator:
    • Use Expo Go app or your preferred emulator for iOS/Android/web.

📦 Scripts

  • npm start – Start Expo development server
  • npm run android – Run on Android device/emulator
  • npm run ios – Run on iOS simulator
  • npm run web – Run in web browser
  • npm run lint – Lint code with ESLint

📚 Extending the App

  • Add new menu items or categories in lib/data.ts
  • Extend authentication or user profile features in store/auth.store.ts and app/(auth)/
  • Customize UI components in components/
  • Update backend logic in lib/appwrite.ts

📝 License

This project is for educational/demo purposes. Please check the repository for license details.

About

A modern, cross-platform food ordering application built with React Native, Expo, and Appwrite. This app allows users to browse a menu, search for food, customize orders, manage a cart, and place orders, all with a beautiful and responsive UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published