Zaiko is an Expo + React Native inventory app built for a mobile retail workflow. It combines stock tracking, sales handling, archived item management, and Firebase-backed authentication in one app.
- Dashboard with live inventory stats, top brands, estimated profit, and best-seller insights
- Add and edit stock with brand selection, pricing rules, IMEI, supplier, color, and product photos
- Browse inventory with search, brand filters, stock-status filters, and sorting
- Sell flow with verification screens and sales history
- Archive, restore, or delete retired stock
- Google, Apple, and email/password authentication
- Company onboarding and workspace setup
- Server connectivity check in Settings
- Expo Router
- React Native
- Firebase Auth, Firestore, Crashlytics, and Remote Config
- Cloudinary for direct image uploads
- Zustand for local state
- MMKV for fast persistence
lucide-react-nativefor iconographyreact-native-svgfor vector rendering
app/- Expo Router entry routessrc/screens/- Screen-level UIsrc/components/- Shared UI componentssrc/services/- Inventory and sales logicsrc/stores/- Auth and preference statesrc/lib/- Firebase, runtime config, and utilitiesassets/logos/- Brand logos used across the appimages/- Primary project logo assets
- Node.js 18+
- pnpm 11+
- Expo CLI-compatible environment
- Firebase project configured for Auth, Firestore, and Storage
pnpm installThis project expects native Firebase config files in place:
- iOS:
GoogleService-Info.plistat the project root - Android:
android/app/google-services.json
Also make sure these Firebase services are enabled:
- Authentication providers for Google, Apple, and email/password
- Firestore database
- Storage bucket if you still use Firebase Storage elsewhere
The app can use a custom API base URL when needed:
EXPO_PUBLIC_API_BASE_URL=https://your-api.example.com/apiIf not set, the app uses the local development URL in development and the hosted production URL in release builds.
For image uploads, set:
EXPO_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
EXPO_PUBLIC_CLOUDINARY_UPLOAD_PRESET=your_unsigned_presetpnpm startAvailable targets:
pnpm android
pnpm ios
pnpm webpnpm start- Start Expopnpm android- Launch on Androidpnpm ios- Launch on iOSpnpm web- Launch in web modepnpm lint- Run lintingpnpm deploy:rules- Deploy Firestore rulespnpm deploy:indexes- Deploy Firestore indexes
The app includes local logo assets for the main brands used in inventory views and selectors:
- Apple
- Samsung
- Xiaomi
- OnePlus
- Vivo
- Oppo
- Motorola
- iQOO
- Realme
The new project logo files live in images/:
images/zaiko.pngimages/zaiko rounded.png
- The app uses Expo Router typed routes.
- Inventory images can be captured from camera or selected from the gallery.
- Success feedback includes an in-app confirmation sound.
- The Settings screen surfaces app version and backend connectivity.
No license has been provided in this repository.
