---
# System prepended metadata

title: React Proficiency Test

---

# React Proficiency Test

The test is designed to understand your knowledge of REST API.

We  will be using a public API which is documented here: https://rickandmortyapi.com/documentation/#rest

Please note that even though the api exposes graphql, we will not use it. Instead all the call must use only the REST endpoints. Also please do NOT use the [nodejs library](https://github.com/afuh/rick-and-morty-api-node) that provides the client. The test is to understand how you structure your code when working with API, so it is important that you write your own code.

## Problem Statement

You have to implement a frontend for displaying the above data in a nice way. There is complete creative freedom as to how you want to display on the UI, there is no hard core rules. Only requirements are as follows:
* Must use [react](https://reactjs.org/) to implement the frontend.
* Must have routes for following types of items:
    * List of all Characters
    * List of all Locations
    * List of all Episodes
* In each of the above page, you must implement [pagination](https://rickandmortyapi.com/documentation/#info-and-pagination) using scrolling method, i.e. when user scrolls to end of list, automatically the next set of items must be appended to current page.
* In each of the page, at the top, you mush have a search bar, which allows to filter the items based on different attributes.
* Clicking on any one item should display all details of that item.

## Grading criteria
The primary emphasis of this test is to validate that you understand the core json api handling in reactjs library. Ensure you maintain a git repository for your solution and have commits which show incremental implementation of different features (**very important**). Do not worry if you are unable to complete the full project, share the repository link with as much code as you were able to do. Do not spend lot of time on making it beautiful, a minimal css will do. Focus on using right set of react libraries to maintain state. The routing must be working for every type of item. Adding tests will fetch bonus marks.

## Submission
The final submission should include:
* brief report (250 words or less) of what was done (in any text format --  Markdown or plaintext)
* The source code repository (on github or gitlab or bitbucket)
* Live URL where the frontend is hosted (github pages or netlify etc. url)
