A powerful mobile seller dashboard application built with React Native and Expo SDK 54. Manage sales, products, clients, and track business performance with an intuitive interface.
- Dashboard: Real-time KPIs, revenue charts, top products, and recent sales
- Sales Management: Create, edit, delete, and track sales with status (paid/pending/cancelled)
- Product Management: Full CRUD operations with stock tracking and color coding
- Client Management: Manage client information with purchase history
- Multi-language Support: Portuguese, English, and Spanish (Argentinian)
- Multi-currency Support: BRL, USD, and ARS
- Stock Management: Automatic stock reduction for paid and pending orders (configurable)
- Pay Later Option: Reserve stock for pending orders or keep stock available
- Data Import/Export: Excel file support for data migration
- Large Number Formatting: Automatic K/M/B formatting for large numbers (1.5K, 2.3M, 1.2B)
- Dark Theme: Modern dark interface optimized for mobile
- Responsive Design: Works on both iOS and Android
- Framework: React Native with Expo SDK 54
- Language: TypeScript
- Storage: AsyncStorage
- File Operations: Expo FileSystem, DocumentPicker, Sharing
- Excel Processing: SheetJS (xlsx)
- Phone Number: libphonenumber-js
- Icons: Lucide React Native
- Navigation: Custom tab navigation
- Node.js (v18 or higher)
- npm or yarn
- Expo CLI
- iOS Simulator (Mac only) or Android Emulator
git clone https://github.com/AlexandreDresch/Vyro.git
cd vyronpm installnpx expo startvyro/
โโโ src/
โ โโโ components/
โ โ โโโ common/ # Reusable components
โ โ โ โโโ button-row.tsx
โ โ โ โโโ field.tsx
โ โ โ โโโ kpi-card.tsx
โ โ โ โโโ list-item.tsx
โ โ โ โโโ modal.tsx
โ โ โ โโโ phone-input.tsx
โ โ โ โโโ stock-bar.tsx
โ โ โโโ modals/ # Modal components
โ โ โ โโโ add-client-modal.tsx
โ โ โ โโโ add-product-modal.tsx
โ โ โ โโโ add-sale-modal.tsx
โ โ โ โโโ client-detail-modal.tsx
โ โ โ โโโ edit-client-modal.tsx
โ โ โ โโโ edit-product-modal.tsx
โ โ โ โโโ edit-sale-modal.tsx
โ โ โ โโโ io-modal.tsx
โ โ โ โโโ product-detail-modal.tsx
โ โ โ โโโ sale-detail-modal.tsx
โ โ โโโ navigation/ # Navigation components
โ โ โโโ app-navigator.tsx
โ โ โโโ tab-bar.tsx
โ โโโ screens/ # Main screens
โ โ โโโ dashboard-screen.tsx
โ โ โโโ sales-screen.tsx
โ โ โโโ products-screen.tsx
โ โ โโโ clients-screen.tsx
โ โ โโโ setup-screen.tsx
โ โโโ hooks/ # Custom hooks
โ โ โโโ use-database.ts
โ โ โโโ use-translation.ts
โ โโโ i18n/ # Internationalization
โ โ โโโ translations.ts
โ โโโ types/ # TypeScript definitions
โ โ โโโ index.ts
โ โโโ utils/ # Utility functions
โ โ โโโ constants.ts
โ โ โโโ helpers.ts
โ โ โโโ seed-data.ts
โ โ โโโ storage.ts
โ โโโ styles/ # Global styles
โ โโโ global-styles.ts
โโโ assets/ # Images and fonts
โโโ app.json # Expo configuration
โโโ package.json
โโโ tsconfig.json
When creating a sale, you can choose between two stock management strategies:
- Reserve Stock: Pending orders reduce stock (reserve inventory for pay-later customers)
- Don't Reserve Stock: Pending orders don't affect stock (manual stock management)
Configure this during app setup.
- Select your preferred language during first launch
- Currency formatting automatically adapts to your selection
- All UI text, dates, and numbers are localized
- Export: Export all sales, products, and clients to Excel
- Import: Import data from previously exported files
- Reset: Clear all data and return to setup screen