A modern React Native mobile application for ordering stationery items online with instant printing services and scheduled delivery options.
- OTP Authentication: Secure phone number verification
- Product Catalog: Browse various stationery items (pens, notebooks, files, etc.)
- Shopping Cart: Add, remove, and manage items
- Delivery Options: Immediate or scheduled delivery
- Time Scheduling: Select specific delivery times
- Product Details: View detailed product information
- Order Management: Cancel individual items or entire orders
- Framework: React Native with Expo
- Navigation: Expo Router
- Styling: NativeWind (Tailwind CSS for React Native)
- HTTP Client: Native Fetch API
- State Management: React Hooks
- Icons: Expo Vector Icons
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- Android Studio (for Android development)
- Xcode (for iOS development - macOS only)
-
Clone the repository
git clone https://github.com/Ayush-AM/Stationary-X.git cd Stationary-X -
Install dependencies
npm install
-
Start the development server
npx expo start
-
Run on device/emulator
- Press
afor Android emulator - Press
ifor iOS simulator - Scan QR code with Expo Go app on your phone
- Press
The app integrates with the following API endpoints:
- Send OTP:
POST https://stationaryx-bd.onrender.com/api/v1/send_otp - Verify OTP:
POST https://stationaryx-bd.onrender.com/api/v1/verify_otp
Send OTP:
{
"phone": "+918830186796"
}Verify OTP:
{
"phone": "+918830186796",
"code": "123456"
}Stationary-X/
├── app/
│ ├── (tabs)/
│ │ ├── index.tsx # Main home screen with OTP auth
│ │ └── Cart.tsx # Shopping cart functionality
│ └── _layout.tsx
├── assets/
│ ├── images/ # Product and UI images
│ └── icons/ # App icons
├── constants/
│ ├── icons.ts # Icon exports
│ └── images.ts # Image exports
├── components/ # Reusable components
└── README.md
- Phone number input with +91 prefix
- OTP generation and SMS delivery
- OTP verification with JWT token response
- Automatic navigation to main app
- Product listing with images and prices
- Individual item management
- Quantity adjustment
- Order cancellation (full order or individual items)
- Bottom slide-up modals for confirmations
- Immediate delivery option
- Custom time selection with hover-like effects
- Time picker with hours and minutes
- Delivery address management
- Intro Screen: Welcome screen with app introduction
- Authentication: Phone number input and OTP verification
- Home Screen: Product categories and featured items
- Cart Screen: Shopping cart with delivery options
- Product Details: Individual product information
- Time Scheduler: Custom delivery time selection
# Start development server
npm start
# Run on Android
npm run android
# Run on iOS
npm run ios
# Run on web
npm run web
# Reset project (clean start)
npm run reset-project
# Lint code
npm run lint- Fork the repository
- Create a 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.
Ayush - GitHub
Project Link: https://github.com/Ayush-AM/Stationary-X
Made with ❤️ using React Native and Expo