Amazon Clone

A multi-page Amazon-style store with product search, a persistent cart, checkout with delivery options, order history, and package tracking.

Screenshot of Amazon Clone

About this project

A multi-page clone of the Amazon shopping experience, built with plain JavaScript ES modules. It covers the full flow from browsing products to tracking a delivered order, with data loaded from a remote API.

Key features:

  • Products loaded from a remote API with async/await, and orders placed with a POST request
  • Search by product name or keyword from any page, by button or the Enter key
  • Cart saved in localStorage, with quantity merging, inline quantity editing, and item removal
  • Delivery options with dates calculated using Day.js, skipping weekends
  • Order history with "Buy it again", and a tracking page with a delivery progress bar
  • Responsive layout across all pages

Engineering:

  • Object-oriented product model with Product, Clothing, and Appliance classes using inheritance
  • Data modules kept separate from rendering modules
  • 25 Jasmine unit tests covering currency formatting, cart logic (with localStorage spies), product classes, and DOM rendering of the order summary