A React Native e-commerce app built with Expo Router featuring QR code scanning, product browsing, and user management.
- Authentication & Onboarding - Secure user registration and login
- Product Catalog - Browse and view individual products
- Shopping Bag - Add/manage items in cart
- Wishlist - Save favorite items
- Checkout - Seamless payment experience
- Order Management - View order history and track status
- User Accounts - Profile and settings management
- Admin Dashboard - Manage users and orders
- Real-time QR Scanning - Scan QR codes with live camera view
- Individual Scan Tracking - Each scan tracked with:
- Scanned data/URL
- Timestamp
- Unique scan ID
- Scan History - View all scanned QR codes
- Individual Delete - Remove specific scans
- Expo Go Compatible - Works directly with Expo Go app
- Camera Permissions - Auto-requests camera access
- Framework: React Native with Expo
- Routing: Expo Router
- State Management: Zustand
- UI Components: React Native
- Icons: Expo Vector Icons
- Maps: React Native Maps
- Storage: Async Storage + Secure Store
- Animations: React Native Reanimated
- Camera: Expo Camera + Barcode Scanner
- Node.js (v18+)
- Expo CLI:
npm install -g expo-cli - Expo account (free): https://expo.dev
-
Clone the repository
git clone https://github.com/meow7781/Epium.git cd epium-iOS/frontend_new -
Install dependencies
npm install
-
Start the development server
npm start
npm startThen:
- iOS: Scan the QR code with your iPhone Camera app โ tap "Open with Expo Go"
- Android: Open Expo Go app โ tap "Scan QR Code" โ scan the terminal QR code
# iOS
npm run ios
# Android
npm run android
# Web
npm run web- Launch the app
- Tap "SCAN QR CODE" button on the home page
- Allow camera permissions when prompted
- Point camera at any QR code
- Scan automatically detects and displays:
- Scanned data/URL
- Time of scan
- Scan history below
- View all scans in the history list
- Delete individual scans or clear all
- Product URLs:
https://example.com/product/123 - Links:
https://github.com/meow7781/Epium - Contact Info:
vCardformat
frontend_new/
โโโ app/
โ โโโ _layout.tsx # Root layout
โ โโโ index.tsx # Home/landing page
โ โโโ scan.tsx # QR scanner screen โจ NEW
โ โโโ (tabs)/ # Tab navigation
โ โโโ auth/ # Authentication screens
โ โโโ product/ # Product details
โ โโโ checkout/ # Checkout flow
โ โโโ orders/ # Order history
โ โโโ admin/ # Admin screens
โ โโโ ...
โโโ components/
โ โโโ QRScanner.tsx # QR scanner component โจ NEW
โ โโโ Themed.tsx
โ โโโ ...
โโโ constants/
โ โโโ theme.ts # Colors & typography
โ โโโ Colors.ts
โโโ store/
โ โโโ appStore.ts # Zustand state
โโโ assets/
โโโ images/
โโโ fonts/
The app includes proper camera permission handling:
"permissions": ["camera"],
"plugins": [
"expo-camera",
"expo-barcode-scanner"
]Create a .env file if needed for API endpoints:
EXPO_PUBLIC_API_URL=https://your-api.com
npm start # Start dev server (all platforms)
npm run ios # Build for iOS simulator
npm run android # Build for Android emulator
npm run web # Run web version-
Install EAS CLI
npm install -g eas-cli
-
Login to Expo
eas login
-
Build for iOS
eas build --platform ios eas submit --platform ios
-
Build for Android
eas build --platform android eas submit --platform android
-
Web Deployment
npx expo export # Deploy the dist/ folder to Vercel, Netlify, etc.
- Restart Expo Go app
- Clear app cache
- Grant permissions in device settings
- Ensure good lighting
- Position QR code in the green scan box
- QR code must be clear and not damaged
- Check network connection
- Make sure dev server is running
- Use the same WiFi network
- Added real-time QR code scanning
- Individual scan tracking with timestamps
- Scan history management
- Expo Go full compatibility
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Gaurav Paul
Made with โค๏ธ using React Native & Expo