A comprehensive React Native order management system for sales teams
OMA is a complete order management solution designed for sales teams to efficiently manage customers, products, and orders. Built with React Native and Expo, it integrates with Google Sheets as a database and provides a seamless workflow from order creation to dispatch.
📱 React Native App → 🔧 Express API Server → 📊 Google Sheets Database
- Frontend: This repository (React Native + Expo)
- Backend: OMA Demo Server (Node.js + Express)
- Database: Google Sheets integration
-
New Order Creation (
new-order.tsx
)- Customer selection with search functionality
- Product selection with real-time pricing
- Quantity management and order calculations
- Custom date/time selection with validation
- Order comments and source tracking
- Indian number formatting (₹1,25,000.00)
-
Order Tracking (
my-orders.tsx
)- Personal order history by user role
- Status tracking (Pending/Approved/Rejected/Dispatched)
- Order details with product breakdown
- Search and filter capabilities
-
Customer Database (
customers.tsx
)- Searchable customer directory
- Contact information management
- Direct calling and WhatsApp integration
-
Customer Analytics (
customer-summary.tsx
)- Ledger balance calculations
- Order history and spending patterns
- Credit/Debit tracking
- Manager Approval System (
order-approval.tsx
)- Role-based access (Manager only)
- Bulk order review and approval
- Rejection with reason tracking
- Customer ledger integration for approval decisions
- Order Processing (
process-orders.tsx
)- Approved order queue management
- Individual product dispatch tracking
- Dispatch comments and timestamps
- Real-time status updates
- Main Dashboard (
main.tsx
)- Live order statistics
- Pending approvals count
- Pending dispatch queue
- Recent order activity
- Quick navigation to all features
-
Authentication System (
login.tsx
)- Role-based login (Sales Rep/Manager/Admin)
- Session management
- Server wake-up and data preloading
-
Theme System
- Dark/Light mode toggle
- Consistent theming across all screens
- User preference persistence
- React Native with Expo framework
- Expo Router for file-based navigation
- Context API for state management
- AsyncStorage for local data caching
- Google Sheets API integration via backend
- React Native Paper components
- React Native Reanimated for smooth animations
- Offline-First Design: Local caching with API fallbacks
- Real-time Data Sync: Live updates from Google Sheets
- Performance Optimized: Memoized components and efficient rendering
- Responsive Design: Works on phones and tablets
- Error Handling: Comprehensive error states and retry logic
Node.js >= 16.0.0
npm >= 8.0.0
Expo CLI
-
Clone the repository
git clone https://github.com/AryanXPatel/OMA-Order-Management-App.git cd OMA-Order-Management-App
-
Install dependencies
npm install
-
Setup backend server (Required)
git clone https://github.com/AryanXPatel/OMA-DEMO-SERVER.git cd OMA-DEMO-SERVER npm install && npm start
-
Start the app
npx expo start
- Run on your preferred platform
- Press
i
for iOS Simulator - Press
a
for Android Emulator - Press
w
for Web browser - Scan QR code with Expo Go app on your device
- Press
app/
├── (app)/ # Protected app routes
│ ├── [main.tsx](http://_vscodecontentref_/0) # Dashboard with live statistics
│ ├── [new-order.tsx](http://_vscodecontentref_/1) # Order creation workflow
│ ├── [my-orders.tsx](http://_vscodecontentref_/2) # Personal order history
│ ├── [order-approval.tsx](http://_vscodecontentref_/3) # Manager approval interface
│ ├── [process-orders.tsx](http://_vscodecontentref_/4) # Dispatch management
│ ├── [customers.tsx](http://_vscodecontentref_/5) # Customer directory
│ ├── [customer-summary.tsx](http://_vscodecontentref_/6) # Customer analytics
│ └── [order-details.tsx](http://_vscodecontentref_/7) # Detailed order view
├── (auth)/ # Authentication
│ └── [login.tsx](http://_vscodecontentref_/8) # Role-based login
├── components/ # Reusable components
├── context/ # React Context providers
├── utils/ # Utility functions
└── _layout.tsx # Root layout with navigation
Role | Capabilities |
---|---|
Sales Rep | Create orders, view own orders, access customer data |
Manager | All sales rep features + order approval, view all orders |
Admin | Full system access (future implementation) |
graph LR
A[Sales Rep Creates Order] --> B[Manager Reviews]
B --> C{Approved?}
C -->|Yes| D[Available for Dispatch]
C -->|No| E[Rejected with Reason]
D --> F[Items Dispatched]
F --> G[Order Complete]
The app uses Google Sheets as its database with these tables:
-
Customer_Master
: Customer information and codes -
Product_Master
: Product catalog with pricing -
New_Order_Table
: Complete order lifecycle tracking -
Customer_Ledger_2
: Financial transaction records
Mobile App Build
# Install EAS CLI
npm install -g @expo/eas-cli
# Build APK
eas build --platform android --profile production
- Live Web App: oma-order-management-app.vercel.app
- Deployed via Vercel with automatic GitHub integration
- Analytics dashboard (currently in development)
- Push notifications for order updates
- Barcode scanning for products
- Offline data sync capabilities
- Multi-language support
- Advanced reporting features
- Fork the repository
- Create your feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
- This project is licensed under the MIT License - see the LICENSE file for details.
- 🔧 Backend Server: OMA-DEMO-SERVER
- 📊 Database Template: Google Sheets
- 🌐 Live Demo: Web App
- 📱 Download: APK Releases
- GitHub: @AryanXPatel
- LinkedIn: Connect with me
Made with ❤️ for efficient order management