Fully responsive phone catalog built with React, featuring a shopping cart and a favorites page. The application allows to browse through a catalog of phones, add items to the cart, and mark favorite products for easy access. The UI is designed based on a Figma mockup. The app leverages React hooks and libraries to provide smooth functionality, including real-time search with debounce, custom infinite carousel, and state management with context and local storage.
- 📱 Responsive web design
- ⚡️ Custom Infinity Carousel (Slider)
- 📄 Product Pagination
- 🗂️ Filtering Options
- 🔍 Product Search with Debounce
- ✅ Valid HTML5 & CSS3
- 🌐 Semantic Markup
├── public
│ ├── index.html
│ └── ...
├── src
│ ├── components
│ │ ├── Carousel.js
│ │ ├── ProductCard.js
│ │ ├── ...
│ ├── pages
│ │ ├── Catalog.js
│ │ ├── Cart.js
│ │ └── ...
│ ├── hooks
│ │ ├── useDebounce.js
│ │ └── ...
│ ├── context
│ │ ├── CartContext.js
│ │ └── ...
│ ├── App.js
│ ├── index.js
│ └── ...
└── package.json
- Clone the repository to your local machine:
git clone https://github.com/vbuldenko/Phone-catalog.git
- Navigate to the project directory:
cd Phone-catalog
- Install the dependencies:
npm install
- Start the project:
npm run dev
- Open your browser and go to http://localhost:5173 to view the project.
useState
useContext
useEffect
useCallback
useMemo
useRef
useSearchParams
useParams
- React Router
- Local Storage (for cart and favorites)
- Debounce (for product search) """