This project is a Ubiquiti assignment application. You can view the deployed app here.
- Implement UI/UX according to the Figma file.
- Handle unexpected interface/contract changes from the backend gracefully.
- Implement features/functions such as:
- Search devices
- Filter devices
- Browse devices in list view and grid view
- Device details page with navigation
- Search devices by both product name and abbreviation.
- Debounce search to reduce API calls and UI re-rendering.
- Provide a clear search button.
- Hover on search results to see device reviews with device images and more details.
- Add hover effects for list view and grid view to highlight the device being checked.
- Implement responsive design to ensure the UI looks good on devices with different resolutions.
- Update the URL with the device ID for easy sharing when navigating devices on the device details page.
- Display a notification in the device details page when the filter is active.
- Toggle JSON display between raw and prettified formats.
- Provide a button to copy JSON to the clipboard.
- Unit tests
- Component tests
- E2E tests
React, Redux RTK, Tailwind CSS, TypeScript, Vite, Vitest, Cypress, zod.
(Recommended: Use Node.js version 20 and Google Chrome for the best experience.)
To run the app locally, follow these steps:
- Install Dependencies:
npm install- Run the App Locally:
npm run dev- Open the App:
Open your browser and navigate to
http://localhost:5173.
To run unit tests, use the following command:
npm testTo run end-to-end tests with Cypress, use the following command:
npm run cy