Skip to content

codecraze25/multi-vendor-shop-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Multi-Vendor Mobile Shopping App

A modern, cross-platform mobile shopping application built with React Native and Expo, designed to provide a seamless shopping experience across multiple vendors.

๐Ÿš€ Features

Core Features

  • Multi-Vendor Support: Browse and shop from multiple vendors in one app
  • Product Catalog: Comprehensive product browsing with categories and filters
  • Favorites System: Save and manage favorite products
  • Search & Filter: Advanced search and filtering capabilities
  • User Authentication: Secure login and user management
  • Responsive Design: Optimized for both mobile and tablet devices

User Experience

  • Modern UI/UX: Clean, intuitive interface with smooth animations
  • Dark/Light Theme: Automatic theme switching based on system preferences
  • Offline Support: Basic offline functionality with local storage
  • Haptic Feedback: Enhanced user interaction with haptic responses
  • Image Optimization: Fast loading images with blur placeholders

Technical Features

  • TypeScript: Full type safety throughout the application
  • State Management: Efficient state management with Zustand
  • Data Fetching: Optimized data fetching with React Query
  • Navigation: Seamless navigation with Expo Router
  • Performance: Optimized for smooth performance on all devices

๐Ÿ›  Tech Stack

Frontend

  • React Native (0.79.1) - Cross-platform mobile development
  • Expo (53.0.4) - Development platform and tools
  • TypeScript (5.8.3) - Type safety and better development experience
  • NativeWind (4.1.23) - Tailwind CSS for React Native

State Management & Data

  • Zustand (5.0.2) - Lightweight state management
  • React Query (5.83.0) - Server state management and caching
  • AsyncStorage (2.1.2) - Local data persistence

Navigation & UI

  • Expo Router (5.0.3) - File-based routing
  • React Navigation (7.1.6) - Navigation library
  • Lucide React Native (0.475.0) - Beautiful icons
  • Expo Image (2.1.6) - Optimized image component

Development Tools

  • ESLint (9.31.0) - Code linting
  • Expo CLI - Development and build tools

๐Ÿ“ฑ Screenshots

Screenshots will be added here

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Expo CLI (npm install -g @expo/cli)
  • iOS Simulator (for iOS development) or Android Studio (for Android development)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd multi-vendor-shopping-app-new
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Start the development server

    npm start
    # or
    yarn start
  4. Run on your preferred platform

    # iOS
    npm run ios
    
    # Android
    npm run android
    
    # Web
    npm run web

๐Ÿ“ Project Structure

multi-vendor-shopping-app-new/
โ”œโ”€โ”€ app/                    # Expo Router app directory
โ”‚   โ”œโ”€โ”€ (tabs)/            # Tab-based navigation
โ”‚   โ”‚   โ”œโ”€โ”€ index.tsx      # Home screen
โ”‚   โ”‚   โ”œโ”€โ”€ browse.tsx     # Product browsing
โ”‚   โ”‚   โ”œโ”€โ”€ favorites.tsx  # Favorites screen
โ”‚   โ”‚   โ””โ”€โ”€ settings.tsx   # Settings screen
โ”‚   โ”œโ”€โ”€ login.tsx          # Authentication screen
โ”‚   โ””โ”€โ”€ product/           # Product detail screens
โ”‚       โ””โ”€โ”€ [id].tsx       # Dynamic product routes
โ”œโ”€โ”€ components/            # Reusable UI components
โ”‚   โ”œโ”€โ”€ ProductCard.tsx    # Product display component
โ”‚   โ”œโ”€โ”€ SearchBar.tsx      # Search functionality
โ”‚   โ”œโ”€โ”€ FilterChips.tsx    # Filter components
โ”‚   โ””โ”€โ”€ LoadingSpinner.tsx # Loading states
โ”œโ”€โ”€ hooks/                 # Custom React hooks
โ”‚   โ”œโ”€โ”€ useAuth.tsx        # Authentication logic
โ”‚   โ”œโ”€โ”€ useProducts.tsx    # Product data management
โ”‚   โ”œโ”€โ”€ useFavorites.tsx   # Favorites functionality
โ”‚   โ””โ”€โ”€ useVendor.tsx      # Vendor data management
โ”œโ”€โ”€ services/              # API and storage services
โ”‚   โ”œโ”€โ”€ api.ts            # API client and endpoints
โ”‚   โ””โ”€โ”€ storage.ts        # Local storage utilities
โ”œโ”€โ”€ types/                 # TypeScript type definitions
โ”‚   โ”œโ”€โ”€ product.ts        # Product-related types
โ”‚   โ”œโ”€โ”€ user.ts           # User-related types
โ”‚   โ””โ”€โ”€ vendor.ts         # Vendor-related types
โ””โ”€โ”€ assets/               # Static assets
    โ””โ”€โ”€ images/           # App icons and images

๐Ÿ”ง Configuration

Environment Variables

Create a .env file in the root directory:

# API Configuration
API_BASE_URL=your_api_base_url
API_KEY=your_api_key

# App Configuration
APP_NAME=Multi-Vendor Shopping App
APP_VERSION=1.0.0

App Configuration

The app configuration is managed in app.json:

{
  "expo": {
    "name": "Multi-Vendor Mobile Shopping App",
    "slug": "multi-vendor-mobile-shopping-app",
    "version": "1.0.0",
    "orientation": "portrait",
    "userInterfaceStyle": "automatic"
  }
}

๐Ÿ“ฑ Available Scripts

  • npm start - Start the Expo development server
  • npm run android - Run on Android device/emulator
  • npm run ios - Run on iOS device/simulator
  • npm run web - Run in web browser
  • npm run lint - Run ESLint for code quality

๐Ÿ— Architecture

State Management

The app uses Zustand for global state management and React Query for server state:

  • Zustand: Manages user authentication, favorites, and app preferences
  • React Query: Handles API data fetching, caching, and synchronization

Data Flow

  1. API Layer: Centralized API client in services/api.ts
  2. Custom Hooks: Business logic encapsulated in custom hooks
  3. Components: UI components consume data through hooks
  4. Local Storage: Persistent data stored using AsyncStorage

Navigation

  • Expo Router: File-based routing system
  • Tab Navigation: Main app sections (Home, Browse, Favorites, Settings)
  • Stack Navigation: Product details and authentication flows

๐ŸŽจ UI/UX Design

Design System

  • Typography: Consistent text hierarchy and spacing
  • Colors: Dynamic theming with vendor-specific primary colors
  • Components: Reusable, accessible UI components
  • Animations: Smooth transitions and micro-interactions

Accessibility

  • Screen Reader Support: Proper accessibility labels
  • Color Contrast: WCAG compliant color combinations
  • Touch Targets: Adequate touch target sizes
  • Keyboard Navigation: Full keyboard accessibility

๐Ÿ”’ Security

  • Authentication: Secure user authentication flow
  • Data Validation: Input validation and sanitization
  • API Security: Secure API communication
  • Local Storage: Encrypted sensitive data storage

๐Ÿงช Testing

Running Tests

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run test:coverage

Testing Strategy

  • Unit Tests: Individual component and hook testing
  • Integration Tests: API and state management testing
  • E2E Tests: Full user flow testing

๐Ÿ“ฆ Building for Production

Android

expo build:android

iOS

expo build:ios

Web

expo build:web

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Follow the existing code style

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support

If you encounter any issues or have questions:

  1. Check the Issues page for existing solutions
  2. Create a new issue with detailed information
  3. Contact the development team

๐Ÿ™ Acknowledgments

  • Expo Team for the amazing development platform
  • React Native Community for the excellent ecosystem
  • All Contributors who have helped improve this project

Made with โค๏ธ using React Native and Expo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

โšก