Your goal is to set up the front-end UI for an application which enables the user to view and manage shipments. The main goal is for the user to check shipments at a glance. This allows users to make faster decisions and plan ahead of time.
- The user should be able to:
- See shipments in pages of 20 elements per page
- Search by shipment id
- Sort by different fields (e.g. id, name) in ascending/descending order
- Be able to filter shipments by different criteria, like destination, cargo, etc. (open-ended)
- View the shipment information on a separate shipment details page
- Update the shipment name (should persist when the page is reloaded)
The interactions should not refresh the page.
- Use React/JS. You can use any libraries you'd like
- The application must start
- The application must be divided into components
- The file structure must be consistent and easy to follow
- Must cover all use cases with minor issues
- Tests written and passing for functions used to sort and filter shipments (ie. not testing the UI display but the utility functions)
- TypeScript is used (and don't use "any" types)
- Use Styled Components for styling
- Use React Hooks where possible
- The application is configurable by environment variables
- The application has a development and production environment
- The application has good naming
- The application computes values
- The application is responsive
- Use higher order functions (e.g. map, filter, reduce) and immutable variables
- No componentization
- No modularization
- Inline styles
- No control over re-rendering (e.g. not using id for a list)
- Bad naming
- Direct DOM manipulation
- Clone this repository
- Complete your project as described above within your local repository
- Make sure that there are scripts to start both the server and the client
- Push your changes to your GitHub and send us a link to the repo
The boilerplate includes a small service for data fetching. The file db.json
includes all the necessary data to achieve the goal. Please follow the steps below to start the server:
yarn install
ornpm install
yarn server
ornpm run server
See json-server for more information.
1 week from the time we send you the test should be sufficient to fulfill a lot of the above requirements. Our advice is to focus on making sure that the application works properly and fulfills the "must-haves" above before moving on to secondary objectives. Happy coding!