Introduction

This is an image

Here is an application project that displays a list of products from the Elevenia API called STORE.

  • State Management : GetX
  • Database Local : Hive

Requirements 🛠️

  • Flutter : > 2.10.3
  • OS : Windows / MacOs
  • Code Editor : VSCode
  • Tested Emulator : Iphone 12 Pro Max (IOS Simulator)

Task 📖

Create :
  • ✅ Display list of product, detail, and add to cart

  • ✅ Use Infinite Scroll for > 5 – Search product by keyword

  • ✅ Keep product on cart if apps is closed and reopened

  • ✅ user can open apps on mobile or tablet

  • ✅ User can view list product when not connect to internet (Offline Mode)

    Requirment App :

  • Good, sensible file structuring that promotes modularity and good separation of logical/UI layers

  • Written Unit Testing the provider, Widget Testing

  • Testing app UI and performance with integration tests

  • Use state management

  • Use Model to show data

  • Responsive display is a big plus

  • Set customized lints that encourage good coding practices is a big plus

  • Preferable to use a distributed version control system

  • Clear instructions on how to run your app locally. Please provide clear explanations

    about your project and how do we run it locally (using README.md is preferable)

Installation 💻

  • Clone this repository with command :

    git clone https://github.com/SHC12/jubelioTechTest

    Integration Testing

  • Run this command in terminal project :

    /bin/zsh {PROJECT_ROOT}/lib/utils/execute_integration.sh

UI

Splash Screen

<img src="/assets/images/screen_capture/splash.png" width="100"/>

Shimmer Loading

<img src="/assets/images/screen_capture/shimmer.png" height="100"/>

List Product

<img src="/assets/images/screen_capture/list_product.png" height="100"/>

Refresh Indicator

<img src="/assets/images/screen_capture/list_product.png" height="100"/>

Search Product Result

<img src="/assets/images/screen_capture/list_product.png" height="100"/>

Detail Product

<img src="/assets/images/screen_capture/list_product.png" height="100"/> Add To Cart Action

<img src="/assets/images/screen_capture/list_product.png" height="100"/>

Add to cart result

<img src="/assets/images/screen_capture/list_product.png" height="100"/> Cart List

<img src="/assets/images/screen_capture/list_product.png" height="100"/>

Offline Mode

<img src="/assets/images/screen_capture/list_product.png" height="100"/>

Connectivity Status

<img src="/assets/images/screen_capture/list_product.png" height="100"/> <img src="/assets/images/screen_capture/list_product.png" height="100"/>

Widget Test & Unit Test

Widget Test Code <img src="/assets/images/screen_capture/list_product.png" height="100"/>

Widget Test Result <img src="/assets/images/screen_capture/widget_test_result.png" height="100"/>

Unit Test Code <img src="/assets/images/screen_capture/unit_test_code.png" height="100"/>

Unit Test Result <img src="/assets/images/screen_capture/unit_test_result.png" height="100"/>

GitHub

View Github