This project was bootstrapped with Create React App and its intended for demo purposes.
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
See the section about deployment for more information.
- The app uses react-redux for global state management, along with redux dev toolkit for ease speed of development
- Styles are managed via styled components to archieve scoped CSS
- Reselect is used to memoize computed date for perfomance reasons (eg: filter by nationality and search term)
- Virtualization was considered but not implemented due to small list size
- Infinite pagination is archieved with IntersectionObserver API
- Responsive design is not implemented
- Test is done via react testing library
- The app is not dockerized since that's out of scope for the purposes of this demo
- Code splitting is archieve per route via react router library and react suspense