ahernandezlopez / lk-coding-exercise-product-engineer-react-native

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Practical Test: React-Native Mobile App

The Challenge

Our Product Engineering team conducted some users interviews and concluded that our users enjoy collecting Pokemon. We decided to invest some time building a proof of concept to help us decide if we should do more in this area.

We asked one of our Product Engineers to build a mobile app using React-Native and Expo that lists Pokemons and some details about them. Unfortunately our Product Engineer has required to be on leave and we need you to continue the work. It’s worth remembering that we agreed to keep a clean and effective user experience, ensuring a good performance.

API Documentation: Use the PokeAPI to fetch the Pokemons' data.

Setup

Clone this repository and run these commands:

npm install

npx expo start

You can use ExpoGo with any iOS or Android device.

Code Quality

The initial codebase was assembled quickly and may contain some technical shortcomings. While addressing and refactoring this tech debt is not a requirement, any effort toward improving it will be appreciated.

Guidelines

While we do not expect a fully polished user interface design, the user experience is of utmost importance. There are no limitations regarding the use of third-party libraries, as a Product Engineer in our team we trust your judgment. Please make your own decisions autonomously. We’ll be happy to understand your reasoning in a later call.

Scope

The Product Engineering team has determined that the minimum viable product should include the following features.

Minimum Viable Product (MVP)

  • List of Pokemons: Display a list of Pokemons ordered by their default number. This list should showcase at least the name and the picture of each pokemon.
  • Pokemon Details: Allow users to tap on a Pokemon from the list to view more details about it, such as its element, skills, and any other relevant information.

Second Stage Features (Bonus)

  • Search Functionality: Implement an input search feature where users can easily search for pokemons by their names.

Estimated Time

On average, we anticipate that:

  • The MVP might take around ~6 hours of work.
  • Including the second stage features ~8 hours of work total.

Note: It's essential to prioritize quality over quantity. If you find that you are unable to complete all the features within the given timeframe, please do not spend more than the advised hours. This a practical test and the value of your time is the priority one. Instead, in a separate text file, list out the features or improvements that you would have implemented given more time.

Submission

While it is not mandatory, we would appreciate a brief document attached outlining your design decisions, challenges faced, and any other information you deem essential.

Once you consider is ready, send the HR person who contacted you a link to download the project. Do not open a pull request in this repository; we want to keep candidates' solutions private. Thank you in advance.

Legal notes

All the results obtained from this exercise will be used for recruitment purposes. The company is not authorized to use it, and you own the copyright of this code. Please, remember that this document and its information are confidential and won’t be reproduced or circulated.

About

License:Apache License 2.0


Languages

Language:TypeScript 95.8%Language:JavaScript 4.2%