This project was bootstrapped with Create React App.
In the project directory, you can run:
Builds and runs optimised app locally at http://localhost:3000.
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits
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.
The build is minified and the filenames include the hashes.
Runs ESLint for every TypeScript and JavaScript file including TSX/JSX.
Prompts lint warnings and errors to console.
Runs Prettier for everything.
Runs source-map-explorer on build
folder.
It shows you a treemap visualization to help you debug where all the code is coming from.
Runs Storybook sandbox.
Open http://localhost:9009 to view it in the browser.
The page will reload if you make edits
Builds the storybook sandbox for deploy to the storybook-static
folder.
Opens the Cypress Test Runner.
Runs Cypress tests to completion.
- TypeScript
- Webpack configured via Create React App
- Code linting with ESLint and Prettier
- Isolated React component development environment with Storybook
- Functional tests with Cypress
- Unit tests with Jest
- Bundle analyser source-map-explorer to keep the size
- Prepush/commit hooks with husky
- Layout with React
- State management with redux and redux-thunk for side effects
- Http requests via axios
- CSS-in-JS via Emotion
- responsible layout
- greedy search to filter feedback by comment
- uses
Json/Decode
to validate and transform an api response. See handling of a decode error in action - client side routing
- nice detailed feedback page
- 404 page
- save and restore filters to url query
- Desktop Safary (V 13.1.2) slows down when dashboard scrolls to very top or bottom
- Device decodes a hardcoded string. User Agent parsing (user-agent-parse or ua-parser-js) does not provide any information for the majority of data.
- No scroll position restoration