Project
Create a single-page application (SPA) that displays a list of products retrieved from https://mock.shop/ (graphQL API). The application should allow users to view product details, filter products by category, and add products to a shopping cart.
Technical Requirements:
- Use React/Svelte, Tailwind, and Typescript.
- Implement FSD architecture.
- Fetch product data from the provided API endpoint.
- Display products in a grid or list format with relevant information (e.g., name, price, image).
- Implement product filtering by category using a dropdown or clickable category links.
- Add pagination or infinite scrolling to the product list.
- Create a product details page that displays more information about a selected product.
- Implement a shopping cart functionality that allows users to add and remove products.
- Implement a search functionality to allow users to search for products by name or description.
- Use version control (e.g., Git) throughout the development process, ensuring atomic and conventional commits.
- Implement global state management using Context API or a state management library like Redux or Zustand.
- Add advanced filtering options (e.g., price range) and sorting options (e.g., price).
- Persist shopping cart state using local storage.
- Optimize the application for performance (e.g., lazy loading, code splitting, memoization).
- Ensure accessibility (ARIA roles, keyboard navigation) and improve user experience with animations and transitions using libraries like Framer Motion.
- Set up a CI/CD pipeline using GitHub Actions, GitLab CI, or another CI/CD tool.
- Implement comprehensive error handling and user feedback (e.g., toast notifications using libraries like React-Toastify).