Skip to content

Morni-Andoka/oneQlick-User-App

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

oneQlick - Food Delivery App

A React Native Expo app built for rural Indian users, competing with Swiggy/Zomato. Built with modern architecture using Expo Router, TypeScript, and React Native Paper.

πŸš€ Features

  • Authentication System: Login, signup, and password recovery
  • Restaurant Discovery: Browse restaurants by cuisine, rating, and location
  • Food Ordering: Add items to cart, customize orders, and checkout
  • Order Tracking: Real-time order status and delivery tracking
  • User Profile: Manage personal information, addresses, and preferences
  • Location Services: GPS-based delivery location and restaurant discovery
  • Multi-language Support: Support for Indian languages (planned)

πŸ—οΈ Project Structure

oneQlick/
β”œβ”€β”€ app/                          # Expo Router file-based routing
β”‚   β”œβ”€β”€ (auth)/                  # Authentication screens
β”‚   β”‚   β”œβ”€β”€ _layout.tsx         # Auth navigation layout
β”‚   β”‚   β”œβ”€β”€ login.tsx           # Login screen
β”‚   β”‚   β”œβ”€β”€ signup.tsx          # Signup screen
β”‚   β”‚   └── forgot-password.tsx # Password recovery
β”‚   β”œβ”€β”€ (tabs)/                 # Main app tab navigation
β”‚   β”‚   β”œβ”€β”€ _layout.tsx         # Tab navigation layout
β”‚   β”‚   β”œβ”€β”€ home.tsx            # Home screen with featured content
β”‚   β”‚   β”œβ”€β”€ search.tsx          # Restaurant search and filters
β”‚   β”‚   β”œβ”€β”€ orders.tsx          # Order history and tracking
β”‚   β”‚   └── profile.tsx         # User profile and settings
β”‚   β”œβ”€β”€ (modals)/               # Modal screens
β”‚   β”‚   β”œβ”€β”€ _layout.tsx         # Modal navigation layout
β”‚   β”‚   β”œβ”€β”€ cart.tsx            # Shopping cart (to be implemented)
β”‚   β”‚   β”œβ”€β”€ filter.tsx          # Advanced search filters (to be implemented)
β”‚   β”‚   └── location-picker.tsx # Location selection (to be implemented)
β”‚   β”œβ”€β”€ _layout.tsx             # Root navigation layout
β”‚   └── index.tsx               # App entry point
β”œβ”€β”€ components/                  # Reusable UI components
β”‚   β”œβ”€β”€ ui/                     # Basic UI components
β”‚   β”œβ”€β”€ common/                 # Common app components
β”‚   └── forms/                  # Form components
β”œβ”€β”€ hooks/                      # Custom React hooks
β”‚   β”œβ”€β”€ useAuth.ts             # Authentication state management
β”‚   └── useCart.ts             # Shopping cart management
β”œβ”€β”€ services/                   # API and external services
β”œβ”€β”€ utils/                      # Utility functions
β”‚   └── helpers.ts             # Common helper functions
β”œβ”€β”€ constants/                  # App constants
β”‚   └── colors.ts              # Color scheme definitions
β”œβ”€β”€ types/                      # TypeScript type definitions
β”‚   └── index.ts               # Main type definitions
β”œβ”€β”€ assets/                     # Static assets
β”‚   β”œβ”€β”€ images/                 # App images
β”‚   β”œβ”€β”€ icons/                  # App icons
β”‚   └── fonts/                  # Custom fonts
└── package.json                # Dependencies and scripts

πŸ› οΈ Technology Stack

  • Framework: React Native with Expo
  • Navigation: Expo Router (file-based routing)
  • Language: TypeScript
  • UI Library: React Native Paper (Material Design)
  • State Management: React Hooks + Context
  • Storage: AsyncStorage for local data persistence
  • Icons: Expo Vector Icons
  • Maps: React Native Maps
  • Location: React Native Geolocation
  • Image Picker: React Native Image Picker
  • Animations: React Native Reanimated

πŸ“± Screen Descriptions

Authentication Screens

  • Login: Email/password authentication with validation
  • Signup: User registration with profile information
  • Forgot Password: Password recovery via email

Main App Screens

  • Home: Featured restaurants, food categories, quick actions
  • Search: Restaurant search with filters and sorting
  • Orders: Current and past orders with status tracking
  • Profile: User information, settings, and preferences

Modal Screens

  • Cart: Shopping cart management and checkout
  • Filters: Advanced search and filter options
  • Location Picker: GPS and manual location selection

πŸ”§ Setup Instructions

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Expo CLI
  • Android Studio / Xcode (for device testing)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd oneQlick
  2. Install dependencies

    npm install
  3. Start the development server

    npm start
  4. Run on device/simulator

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

πŸ“± App Configuration

Environment Variables

Create a .env file in the root directory:

EXPO_PUBLIC_API_URL=your_api_url_here
EXPO_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_api_key

App Configuration

Update app.json with your app details:

{
  "expo": {
    "name": "oneQlick",
    "slug": "oneqlick",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#FF6B35"
    }
  }
}

🎨 Design System

Color Palette

  • Primary: #FF6B35 (Orange)
  • Secondary: #FFD93D (Yellow)
  • Accent: #6BCF7F (Green)
  • Success: #4CAF50
  • Warning: #FF9800
  • Error: #F44336

Typography

  • Headings: Bold, 18-32px
  • Body: Regular, 14-16px
  • Captions: Regular, 12px

Spacing

  • Small: 8px
  • Medium: 16px
  • Large: 24px
  • Extra Large: 32px

πŸ”’ Security Features

  • Secure authentication with JWT tokens
  • Input validation and sanitization
  • Secure storage of sensitive data
  • API rate limiting (planned)
  • SSL/TLS encryption (planned)

πŸ“Š Performance Optimizations

  • Lazy loading of screens and components
  • Image optimization and caching
  • Efficient state management
  • Minimal re-renders with React.memo
  • Optimized bundle size

πŸ§ͺ Testing

Unit Testing

npm test

E2E Testing

npm run test:e2e

πŸ“¦ Build & Deployment

Android APK

expo build:android

iOS IPA

expo build:ios

Web Build

expo build:web

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

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

πŸ†˜ Support

For support and questions:

  • Create an issue in the repository
  • Contact the development team
  • Check the documentation

πŸ—ΊοΈ Roadmap

Phase 1 (Current)

  • βœ… Basic authentication
  • βœ… Restaurant browsing
  • βœ… Order management
  • βœ… User profile

Phase 2 (Next)

  • πŸ”„ Advanced search and filters
  • πŸ”„ Shopping cart and checkout
  • πŸ”„ Payment integration
  • πŸ”„ Order tracking

Phase 3 (Future)

  • πŸ“‹ Multi-language support
  • πŸ“‹ Push notifications
  • πŸ“‹ Social features
  • πŸ“‹ Analytics dashboard

Built with ❀️ for rural Indian communities # oneQlick-User-App

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 75.7%
  • HTML 12.1%
  • CMake 6.2%
  • C++ 2.8%
  • C 2.1%
  • Java 0.4%
  • Other 0.7%