The aim of this project is to build an app to display data in a dashboard.
This project is deployed here.
This is a web application that contains the following main features:
- Users can view data in table or pie view
- Libraries:
React, Redux, axios
- Styling:
styled-components
- Linting:
Eslint
- Testing:
Jest, react-testing-library
- Build:
Create-React-App
- Deployment:
Heroku
This project is using npm
for dependency management. Make sure npm
is installed on your machine.
npm install
Install project dependencies.
npm run dev
Run the app in development mode on http://localhost:3000/
.
npm run test
Launch test runner and run all the tests.
- Reduce wasted rendering by memorising (potential candidates: PieView, but have to profile and benchmark first to see how beneficial is the memorisation)
- Handle data loading and error states. Currently data loading and error states are handled in reducer and saved to Redux store, but it's not reflected in the UI
- Implement lazy loading. Add routing for table view and pie view so we can take advantage of lazy loading
- Use
Redux Toolkit
to reduce boilerplate code - Extract some common code into custom hook (potential candidates: network call)
- Type everything correctly, remove all
any
type