Skip to content

Instantly share code, notes, and snippets.

@ensargunesdogdu
Last active November 14, 2023 07:07
Show Gist options
  • Save ensargunesdogdu/202a65168f2b4f0c731ac72dbd6f5fa3 to your computer and use it in GitHub Desktop.
Save ensargunesdogdu/202a65168f2b4f0c731ac72dbd6f5fa3 to your computer and use it in GitHub Desktop.

React Native Challenge

Objective

Develop a feature-rich React Native application that allows users to browse and interact with a dynamic product list fetched from a dummy API. The application should include advanced features such as sorting, filtering, searching, favoriting, and detailed product information.

Requirements

1. Product List

  • Fetch product data from the provided dummy API [https://dummyjson.com/products].
  • Display a list of products, each containing:
    • Image
    • Title
    • Description
    • Price
    • Favorite icon (with dynamic color based on user's choice)

2. Sorting and Filtering

  • Implement a section above the product list with:
    • Sorting options for price and rating.
    • Filters for product brand.
    • Search bar for title and description.

3. Favoriting

  • Allow users to mark products as favorites.
  • Implement a separate icon for navigating to the list of favorited products.
  • On the product detail page, users can toggle the favorite status.
  • Update the favorited products icon color on the previous screen upon returning.

4. Product Detail Page

  • Create a detailed product view with:
    • Image
    • Title
    • Description
    • Price
    • Price after discountPercentage
    • Stock
    • Rating
    • Small images carousel
    • Ability to add/remove the product from favorites

5. Navigation

  • Implement navigation between product list, favorited products, and product detail pages.
  • Allow users to navigate to the next and previous products from the detail page.

6. Nice-to-have Features

  • Implement a splash screen for a visually appealing start.
  • Use functional components and leverage React hooks.
  • Explore and propose ideas for offline storage of user's favorite products.

Additional Challenge

  • Implement a mechanism for offline storage of user's favorite products, ensuring a seamless experience even without an internet connection.

Submission Guidelines

  • Share the source code repository (GitHub, Bitbucket, etc.).
  • Include clear instructions on how to run the application locally.
  • Provide a brief documentation outlining the architecture and key decisions.

Evaluation Criteria

  • Code quality, structure, and organization.
  • User interface design and responsiveness.
  • Implementation of advanced features (sorting, filtering, favoriting).
  • Proper navigation and seamless transitions.
  • Handling of asynchronous operations and API calls.
  • Creative solutions for offline storage (if attempted).

This enhanced challenge aims to test not only your React Native skills but also your ability to design and implement a feature-rich mobile application with a focus on user experience and responsiveness. Good luck!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment