Skip to content

mahmoudEwiis/Ecommerce

Repository files navigation

Store (Ecommerce App)

This project was generated with Angular CLI version 12.2.6.

Description

This is an Angular E-commerce application that allows users to browse products, add products to cart or wishlist, and checkout products. The application fetches product data through an API and uses a token-based authentication system with an expiration time of 20 days, and the refresh token is valid for 10 hours. It also implements the concept of lazy loading with the application divided into modules, including a user module where users can view and update their personal information.

Features

  • User Authentication with JWT token.
  • Data loading using ngx skeleton loader.
  • Infinite scrolling to load more products.
  • Product details page.
  • Product sorting by price and name.
  • Product filtering by category.
  • Zoom in functionality in product details page.
  • Add products to cart or wishlist.
  • Lazy loading of modules.
  • Checkout products.

Usage

Once the application is running, you can browse products, add products to cart or wishlist, and checkout products. You can also sort products by price or name. The application uses ngx-infinite-scroll to load more products as the user scrolls down the page.

To use the application, you will need to create an account and log in. Once logged in, you will receive a JWT token that will be valid for 20 days, and the refresh token is valid for 10 hours. After 20 days, the token will expire, and you will need to log in again.

The application is divided into modules, including a user module where users can view and update their personal information. Lazy loading is used to optimize the loading of modules.

backend API

Documentation for the backend API can be found here.

Built with

Please leave a ⭐ as motivation if you liked the implementation 😄

Running the project

In the project directory, you can run:

npm install

To install all dependencies in package.json.

npm serve

It runs the app in the development mode.
Open http://localhost:4200 to view it in the browser.

Contributing

If you want to contribute to this project, you can fork the repository and submit a pull request.