Skip to content

Vall-Re/Phone_Catalogue

Repository files navigation

React Product Catalog

A fully-featured React Product Catalog with shopping cart and favorites functionality. This project demonstrates a modern interface with dynamic product listings, sorting, pagination, search, and theme switching.


Live Preview


Design

The project is implemented according to the following designs:


Technologies Used

  • React (with TypeScript)
  • React Router DOM for routing
  • React Context for state management
  • CSS Modules & SCSS for styling
  • ESLint & Prettier for code formatting
  • LocalStorage for persisting cart and favorites
  • Skeleton Loader
  • Theme switching (light/dark)
  • Responsive design for mobile and desktop screens

Features

Home Page

  • Image slider with automatic and manual navigation
  • "Brand new" block showing newest products by year
  • "Shop by category" block: Phones, Tablets, Accessories
  • "Hot Prices" block showing products with the biggest discount

Product Pages

  • Separate pages for /phones, /tablets, /accessories
  • Sorting: Newest, Alphabetical, Cheapest
  • Pagination and items-per-page selector
  • Product search with debounce and URL sync
  • Loader during data fetch, error handling, and empty states

Product Details Page

  • Product information: images, available colors and capacities
  • Technical specifications and description
  • "You may also like" block
  • Breadcrumbs navigation
  • Browser-like Back button

Shopping Cart

  • Add/remove products, manage quantity
  • Automatic calculation of total amount and quantity
  • Persist cart in LocalStorage
  • Modal confirmation for checkout

Favorites

  • Add/remove products to favorites
  • Display favorites count in the header
  • Persist favorites in LocalStorage

Themes & Other Features

  • Light/dark theme switching
  • Sticky header with logo, navigation, cart, and favorites
  • Footer with GitHub link and "Back to Top" button
  • Smooth hover effects and image scaling
  • NotFoundPage for unknown URLs

Getting Started

Clone the repository

git clone https://github.com/Vall-Re/Phone_Catalogue
cd Phone_Catalogue
Install dependencies

npm install
# or
yarn install
Run the project

npm start
# or
yarn start
The app will be available at http://localhost:3000.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages