Skip to content

ritikch027/foodingo

Repository files navigation

Foodingo 🍔📱 - Food Delivery App (React Native)

React Native Android iOS Node License

Foodingo is a modern food delivery mobile app built with React Native CLI. It includes a customer experience (browse, cart, checkout), an owner experience (restaurant + menu management), and admin-style management screens.


Download from link below


✨ Highlights

  • 🔐 Auth + session persistence (AsyncStorage)
  • 🏪 Restaurant onboarding (owner flow)
  • 🧾 Cart + checkout (COD + Razorpay online payments)
  • 🖼️ Image upload + crop (Cloudinary)
  • 🧭 Stack + Drawer navigation
  • 🎬 Smooth animations (Reanimated) + custom loader

🚀 Features

👤 Customer

  • Login / Register
  • Browse restaurants, categories, menus
  • Add to cart, update quantities
  • Checkout flow
  • Profile
  • Orders (screen included; backend support may vary)

🏪 Restaurant Owner

  • Register restaurant + upload banner
  • Add menu items + upload item images
  • Set categories, discounts, veg/non-veg

🎨 UI/UX

  • Clean, modern UI
  • Toast notifications
  • Animated loader + pleasant empty/error states

🧰 Tech Stack

Tool / Library Why it's used
React Native CLI Native mobile app framework
React Navigation Stack + Drawer navigation
Axios API requests
AsyncStorage Token/session storage
Reanimated Animations
react-native-vector-icons Icons
react-native-image-crop-picker Image picking + cropping
Cloudinary Image hosting
Razorpay Online payments

🖼️ Screenshots

👤 Customer

Home Cart Profile
Home Cart Profile
Payment Checkout My Orders
Payment Checkout Order Details

🏪 Owner

Owner Home Add New Item Manage Items
Owner Home Add New Items Manage Items
Edit Restaurant Order Details Restaurant Orders
Edit Restaurant Add Restaurant Restaurant Orders

🛠️ Admin

Admin Dashboard All Users All Restaurants
Admin Dashboard Admin Users Admin Restaurants

🏗️ Project Structure

src/
  app/
    RoleHome.jsx
  context/
    userContext.jsx
  features/
    admin/
      AddCategory.jsx
      AdminHome.jsx
      AdminManagement.jsx
      UserDetails.jsx
    auth/
      Login.jsx
      Register.jsx
    browse/
      Home.jsx
      CategoryItem.jsx
      RestaurantDetails.jsx
      RestaurantItems.jsx
      ItemDetails.jsx
      ItemsGrid.jsx
      RenderCategories.jsx
      RenderOffer.jsx
      HomeSkeleton.jsx
    cart/
      Cart.jsx
      Checkout.jsx
    orders/
      MyOrders.jsx
      OrderCard.jsx
      OrderDetails.jsx
      OrderSuccess.jsx
      RestaurantOrders.jsx
    owner/
      OwnerHome.jsx
      AddRestaurant.jsx
      AddItems.jsx
      OwnerItemsDashboard.jsx
      OwnerRestaurantEdit.jsx
    profile/
      Profile.jsx
      Settings.jsx
  hooks/
    useBanDetection.jsx
  lib/
    api.jsx
    toast.js
    toastConfig.jsx
  navigators/
    HomewithDrawer.jsx
  screens/
    OwnerHome.jsx
  shared/
    confirm.jsx
    counter.jsx
    CropUI.jsx
    GenericForm.jsx
    ImagePicker.jsx
    ItemCard.jsx
    Loader.jsx
  theme/
    index.js
    tokens.js

🔌 Backend / API

Default base URL is set in src/lib/api.jsx:

https://foodingo-backend-8ay1.onrender.com/api

If you're running your own backend, update the baseURL in src/lib/api.jsx.

Note: there is a .env with BASE_URL, but the app currently uses the hardcoded baseURL above (keep them in sync if you use both).

💤 Cold-start note (Render)

If the backend is sleeping, the app may show a "kitchen is warming up" screen for a few seconds. Just hit Retry.


🖼️ Image Upload (Cloudinary)

Cloudinary config is currently hardcoded in src/shared/ImagePicker.jsx:

  • cloudName
  • uploadPreset

Replace these with your own Cloudinary details for production.


💳 Payments (Razorpay)

Checkout supports COD and Online (Razorpay). Online payments depend on backend endpoints to create and verify Razorpay orders.


⚙️ Setup & Run

Prerequisites

  • Node.js >= 18
  • React Native CLI environment set up (Android Studio / Xcode)
  • CocoaPods (iOS): sudo gem install cocoapods (if needed)

Install

npm install

iOS pods

cd ios && pod install && cd ..

Run

# Android
npm run android

# iOS
npm run ios

Useful scripts

npm run start
npm run lint
npm test

🗺️ Roadmap

  • ⭐ Favorites + ratings/reviews
  • 🔔 Push notifications
  • 📍 Live order tracking
  • 🌙 Dark mode
  • 📊 Admin analytics

👨‍💻 Author

Built with ❤️ by Ritik Chauhan


📄 License

MIT

About

Full-stack-ready food delivery mobile app in React Native with customer ordering, owner restaurant/menu dashboards, and management screens, plus Razorpay payments and Cloudinary media handling.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages