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.
- 🔐 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
- Login / Register
- Browse restaurants, categories, menus
- Add to cart, update quantities
- Checkout flow
- Profile
- Orders (screen included; backend support may vary)
- Register restaurant + upload banner
- Add menu items + upload item images
- Set categories, discounts, veg/non-veg
- Clean, modern UI
- Toast notifications
- Animated loader + pleasant empty/error states
| 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 |
| Home | Cart | Profile |
|---|---|---|
![]() |
![]() |
![]() |
| Payment | Checkout | My Orders |
|---|---|---|
![]() |
![]() |
![]() |
| Owner Home | Add New Item | Manage Items |
|---|---|---|
![]() |
![]() |
![]() |
| Edit Restaurant | Order Details | Restaurant Orders |
|---|---|---|
![]() |
![]() |
![]() |
| Admin Dashboard | All Users | All Restaurants |
|---|---|---|
![]() |
![]() |
![]() |
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
Default base URL is set in src/lib/api.jsx:
https://foodingo-backend-8ay1.onrender.com/apiIf 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).
If the backend is sleeping, the app may show a "kitchen is warming up" screen for a few seconds. Just hit Retry.
Cloudinary config is currently hardcoded in src/shared/ImagePicker.jsx:
cloudNameuploadPreset
Replace these with your own Cloudinary details for production.
Checkout supports COD and Online (Razorpay). Online payments depend on backend endpoints to create and verify Razorpay orders.
- Node.js
>= 18 - React Native CLI environment set up (Android Studio / Xcode)
- CocoaPods (iOS):
sudo gem install cocoapods(if needed)
npm installcd ios && pod install && cd ..# Android
npm run android
# iOS
npm run iosnpm run start
npm run lint
npm test- ⭐ Favorites + ratings/reviews
- 🔔 Push notifications
- 📍 Live order tracking
- 🌙 Dark mode
- 📊 Admin analytics
Built with ❤️ by Ritik Chauhan
MIT














