Giter VIP home page Giter VIP logo

icon-tech-task's Introduction

icon_tech_task

This task involves implementing several features within a Flutter application, including authentication, displaying restaurant branches on a map, showing branch categories and products, and displaying product details.

Table of Contents

Introduction

This task involves implementing several features within a Flutter application, including authentication, displaying restaurant branches on a map, showing branch categories and products, and displaying product details.

Features

1 - Authentication:

  • Implement authentication functionality using a provided API endpoint for user sign-in.
  • Handle user authentication using phone number and password.
  • Securely store authentication tokens for subsequent API requests. 2 - Restaurant Branches on Map Screen:
  • Fetch restaurant branch data from a provided API endpoint based on the user's location.
  • Display branch locations on a map with markers.
  • Provide detailed information about branches when markers are clicked. 3 - Branch Categories and Products Screen:
  • Retrieve branch categories and products data from API endpoints.
  • Display branch categories horizontally with images and names.
  • Paginate and display products based on selected categories.
  • Show product details including image, name, description, and price. 4 - Product Details Screen:
  • Display detailed information about selected products.
  • Include product image, name, description, and price.

Getting Started

Prerequisites

Make sure you have Flutter and Dart installed on your machine. If not, follow the official Flutter installation guide.

Installation

  1. Clone the repository:

    git clone https://github.com/karar0120/icon-tech-task.git
    cd icon-tech-app-flutter
  2. Install dependencies:

    flutter pub get
  3. Run the app:

    flutter run

Project Structure

.
├── core                       # For all common and core files.
│   ├── error                  # contains all Exceptions and Failures classes
│   ├── presentation           # Common presentation files
|   │   └── blocs              # Common blocs
|   │   └── pages              # Core pages
|   │   └── widgets            # Common widgets
│   └── route                  # Routes for navigation
│   └── theme                  # Theme data
│   └── usecases               # Common usecases
|
├── data                       # Data Files of Feature 1
│   ├── datasources            # DataSources Abstract Files and Implementations
│   │   └── feature            # Feature 1 (for exp : Todo Feature)
│   │       └── sub-feat.      # Sub feature
│   ├── models                 # Models for data
│   │   └── feature            # Feature 1 (for exp : Todo Feature)
│   │       └── sub-feat.      # Sub feature
│   └── repositories           # Repositories Implementation Classes
│       └── feature            # Feature 1 (for exp : Todo Feature)
│           └── sub-feat.      # Sub feature
├── domain                     # Domain
│   ├── entities               # Entities For Feature 1
│   │   └── feature            # Feature 1 (for exp : Todo Feature)
│   │       └── sub-feat.      # Sub feature
│   ├── usecases               # Usecases of Feature 1
│   │   └── feature            # Feature 1 (for exp : Todo Feature)
│   │       └── sub-feat.      # Sub feature
│   └── repositories           # Repositories Abstract Classes
│       └── feature            # Feature 1 (for exp : Todo Feature)
│           └── sub-feat.      # Sub feature
└── presentation               # Presentation files
    ├── blocs                  # Blocs
    │   └── feature            # Feature 1 (for exp : Todo Feature)
    │       └── sub-feat.      # Sub feature
    ├── pages                  # Pages
    │   └── feature            # Feature 1 (for exp : Todo Feature)
    │       └── sub-feat.      # Sub feature
    └── widgets                # Widgets
        └── feature            # Feature 1 (for exp : Todo Feature)
            └── sub-feat.      # Sub feature

Architecture

This app uses [Clean Architecture by Robert C Martin]

Image Source : ResoCoder

Branches

.
├── master                       # Contains the latest release
       ├── dev                   # Contains the latest development
            ├── feature1         # feature 1 created from dev
            ├── feature2         # feature 2 created from dev
            ├── feature3         # feature 3 created from dev
            ├── bugFix1          # bugfix 1 created from dev
            ├── bugFix2          # bugfix 1 created from dev
            ├── docChange1       # docChange 1 created from dev
            ├── docChange1       # docChange 2 created from dev

Authentication:

  • Implement authentication functionality using a provided API endpoint for user sign-in.
  • Handle user authentication using phone number and password.
  • Securely store authentication tokens for subsequent API requests.

📱 Screens

WhatsApp Image 2024-05-02 at 02 13 54_5a28d371 WhatsApp Image 2024-05-02 at 02 13 50_f636f5d7 WhatsApp Image 2024-05-02 at 02 13 53_c8788d6c

Restaurant Branches on Map Screen:

  • Fetch restaurant branch data from a provided API endpoint based on the user's location.
  • Display branch locations on a map with markers.
  • Provide detailed information about branches when markers are clicked.

📱 Screens

WhatsApp Image 2024-05-02 at 02 13 53_9eda1e38 WhatsApp Image 2024-05-02 at 02 13 53_25fcef50 WhatsApp Image 2024-05-02 at 02 13 57_d9a2decf WhatsApp Image 2024-05-02 at 02 13 57_6904269a WhatsApp Image 2024-05-02 at 02 13 50_b0e39a10 WhatsApp Image 2024-05-02 at 02 13 53_01d9e7bc

Branch Categories and Products Screen:

  • Retrieve branch categories and products data from API endpoints.
  • Display branch categories horizontally with images and names.
  • Paginate and display products based on selected categories.
  • Show product details including image, name, description, and price.

📱 Screens

WhatsApp Image 2024-05-02 at 02 13 55_dea9d25d WhatsApp Image 2024-05-02 at 02 13 57_d8d40c62 WhatsApp Image 2024-05-02 at 02 13 54_29d197e4 WhatsApp Image 2024-05-02 at 02 13 56_003ef76b WhatsApp Image 2024-05-02 at 02 13 50_dedc5c16 WhatsApp Image 2024-05-02 at 02 13 54_b0e6bba7 WhatsApp Image 2024-05-02 at 02 13 55_53994f74

Product Details Screen:

  • Display detailed information about selected products.
  • Include product image, name, description, and price.

📱 Screens

WhatsApp Image 2024-05-02 at 02 13 55_17330833 WhatsApp Image 2024-05-02 at 02 13 50_682d40e9 WhatsApp Image 2024-05-02 at 02 13 56_d5f57bab WhatsApp Image 2024-05-02 at 02 13 55_54984117 WhatsApp Image 2024-05-02 at 02 13 56_328a7ff5 WhatsApp Image 2024-05-02 at 02 13 56_719960c4

icon-tech-task's People

Contributors

karar0120 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.