A Single Page App to display table of all the banks in a specific city with search functionality based on various parameters/categories built with React.JS.
This was built as take home assignment for my internship interview with Groww
First step was to setup development environment for which I used Vite as it provides better performance and less cluttered environment, also HMR is great while testing.
Second step was to fetch the data using given API and cache its response on localstorage fors a limited time to provide faster switching between the cities and to avoid multiple API calls in quick succession.
Third step was to create pagination for table for performance improvement after that next step was to add dropdown and input field to filter cities and search categories.
Fourth step was to improve UI and check for any conditions.
Final step was to add favorite functionality with other improvements necessary for performance.
- React
- Material UI is used for various UI components
- Emotion CSS is used to style the UI, It is used by MUI as a styling engine
Vite JS is used for tooling as CRA replacement
git clone git@github.com:DevanshBajaj/find-your-bank.git
yarn
yarn dev
MIT License
Copyright (c) 2022 Devansh Bajaj
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.