This project was generated with Angular CLI version 12.2.6.
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.
- 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.
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.
Documentation for the backend API can be found here.
- Angular.
- Typescript
- Ngneat/Hot-toast.
- Bootstrap.
- Fontawesome.
- ngx-skeleton-loader.
- ngx-infinite-scroll.
- rxjs.
Please leave a ⭐ as motivation if you liked the implementation 😄
In the project directory, you can run:
To install all dependencies in package.json.
It runs the app in the development mode.
Open http://localhost:4200 to view it in the browser.
If you want to contribute to this project, you can fork the repository and submit a pull request.