How reyneilrodelas/our-system- works
ScanWizard is a React Native product-locator app for shoppers and store operators. The shopper flow starts in the app’s navigation, scans or searches for a product, then views product results and nearby stores on a map; the README describes barcode/QR scanning, distance filtering, and live location updates. Store-owner and admin screens cover inventory, store management, approvals, and notifications. Supabase provides the app’s backend integration, with local caching used by several screens. Some screen behavior is only documented or listed in the source index, so uncertain links are omitted.
Main entry points: supabase.ts Supabase client · App.tsx Navigation · ResultScreen.tsx Product results · scanner.tsx Barcode scanner
Components 29
App navigation
- Navigation
App.tsx - Startup
src/screens/auth/Startup.tsx
Product discovery
- Barcode scanner
src/screens/shared/scanner.tsx - Camera overlay
src/screens/components/CameraOverlay.tsx - Product search
src/screens/shared/SearchScreen.tsx - Product results
src/screens/components/ResultScreen.tsx - Nearby map
src/screens/components/Maps.tsx - Store product details
src/screens/components/StoreProductDetailsScreen.tsx - Home
src/screens/shared/HomeScreen.tsx
Store operations
- My stores
src/screens/storeowner/MyStoresScreen.tsx - Store details
src/screens/storeowner/StoreDetailsScreen.tsx - Create store
src/screens/storeowner/CreateStroreScreen.tsx - Add product
src/screens/storeowner/AddProductScreen.tsx - Assign products
src/screens/storeowner/AssignProductsScreen.tsx - Manage products
src/screens/storeowner/ManageProductScreen.tsx
Accounts and admin
- Store approvals
src/screens/admin/AllStoreScreen.tsx - Admin dashboard
src/screens/admin/AdminDashboard.tsx - Approval review
src/screens/admin/AdminApprovalScreen.tsx - Sign in
src/screens/auth/LoginScreen.tsx - Registration
src/screens/auth/SignupScreen.tsx - User profile
src/screens/shared/ProfileScreen.tsx
Backend and utilities
- Session and role
src/context/AuthContext.tsx - Supabase client
src/lib/supabase.ts - Local cache
src/utils/cacheUtils.ts - Email notifications
src/config/emailConfig.ts - Styled alerts
src/screens/components/StyledAlert.tsx
Other components
- App user
- Supabase service
- Resend email API
Connections 41
- App user → Navigation: uses
- Navigation → Startup: starts
App.tsx - Navigation → Barcode scanner: routes to
App.tsx - Navigation → Product search: routes to
App.tsx - Navigation → Product results: routes to
App.tsx - Navigation → Nearby map: routes to
App.tsx - Navigation → Home: routes to
App.tsx - Navigation → My stores: routes to
App.tsx - Navigation → Admin dashboard: routes to
App.tsx - Navigation → Sign in: routes to
App.tsx - Navigation → Registration: routes to
App.tsx - Barcode scanner → Camera overlay: renders
src/screens/shared/scanner.tsx - Barcode scanner → Product results: finds product
- Product search → Product results: opens result
- Product results → Nearby map: shows nearby stores
- Nearby map → Store product details: opens details
- Product search → Local cache: caches searches
src/screens/shared/SearchScreen.tsx - Product search → Supabase client: queries products
src/screens/shared/SearchScreen.tsx - Barcode scanner → Supabase client: looks up codes
src/screens/shared/scanner.tsx - Product results → Supabase client: loads availability
src/screens/components/ResultScreen.tsx - Nearby map → Supabase client: loads store data
src/screens/components/Maps.tsx - My stores → Store details: opens store
- Store details → Supabase client: updates store
src/screens/storeowner/StoreDetailsScreen.tsx - Store details → Local cache: updates cache
src/screens/storeowner/StoreDetailsScreen.tsx - Create store → Supabase client: creates store
- Create store → Email notifications: requests notification
src/config/emailConfig.ts - Add product → Supabase client: saves product
src/screens/storeowner/AddProductScreen.tsx - Assign products → Supabase client: assigns products
src/screens/storeowner/AssignProductsScreen.tsx - Manage products → Supabase client: manages products
src/screens/storeowner/ManageProductScreen.tsx - Store approvals → Supabase client: reviews stores
src/screens/admin/AllStoreScreen.tsx - Store approvals → Email notifications: notifies owner
src/screens/admin/AllStoreScreen.tsx - Admin dashboard → Supabase client: loads dashboard
src/screens/admin/AdminDashboard.tsx - Approval review → Supabase client: reviews applications
src/screens/admin/AdminApprovalScreen.tsx - Sign in → Supabase client: authenticates
src/screens/auth/LoginScreen.tsx - Registration → Supabase client: registers account
src/screens/auth/SignupScreen.tsx - User profile → Supabase client: loads profile
src/screens/shared/ProfileScreen.tsx - Session and role → Supabase client: loads session
src/context/AuthContext.tsx - Session and role → Supabase client: fetches profile
src/context/AuthContext.tsx - Supabase client → Supabase service: connects to
src/lib/supabase.ts - Email notifications → Resend email API: sends email
src/config/emailConfig.ts - Session and role → Styled alerts: displays errors
src/context/AuthContext.tsx