https://github.com/elvan/ecommerce-shop-app-frontend-angular
This project is a comprehensive e-commerce platform built with Angular, providing a full-fledged shopping experience with features such as product browsing, cart management, order processing, and an administrative dashboard for managing products and orders.
https://github.com/elvan/ecommerce-shop-app-frontend-angular
angular bootstrap bootstrap5
Last synced: 2 months ago
JSON representation
This project is a comprehensive e-commerce platform built with Angular, providing a full-fledged shopping experience with features such as product browsing, cart management, order processing, and an administrative dashboard for managing products and orders.
- Host: GitHub
- URL: https://github.com/elvan/ecommerce-shop-app-frontend-angular
- Owner: elvan
- Created: 2024-09-10T11:40:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-22T04:11:31.000Z (over 1 year ago)
- Last Synced: 2025-01-21T02:44:21.496Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 5.74 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# E-Commerce Shop Angular
## Description
This project is a comprehensive e-commerce platform built with Angular, providing a full-fledged shopping experience with features such as product browsing, cart management, order processing, and an administrative dashboard for managing products and orders. The project aims to deliver a seamless and interactive user experience, leveraging modern web technologies and best practices in web development.
## Features
### **Admin Dashboard and Catalog Management**
- **Product Management**: Provides CRUD operations for managing products, including creation, updates, deletion, and stock management. The admin can easily navigate and manipulate the catalog through a user-friendly interface.
- **Order Management**: Admins can view, process, and manage customer orders, including issuing refunds and tracking order status. A dedicated dashboard is available for order overview and detailed management.
- **Stock Updates**: Allows real-time updates to product quantities, ensuring accurate stock levels are maintained.
### **Modular Route Management**
- **Lazy-Loaded Feature Modules**: The project utilizes lazy-loading for route management, splitting the application into feature modules such as account, checkout, and orders. This enhances performance by loading only the necessary modules.
- **Dynamic Component Loading**: Admin routes and other features are loaded dynamically to improve the application's responsiveness and scalability.
### **Checkout and Payment Integration**
- **Stripe Payment Gateway**: Implements Stripe for secure payment processing, including token creation, payment confirmation, and error handling.
- **Order Creation and Confirmation**: Automatically creates orders upon successful payment, with support for order tracking and detailed summaries.
### **Coupon and Discount Functionality**
- **Coupon Application**: Users can apply discount codes during checkout, which are validated and reflected in the order summary.
- **Dynamic Pricing**: The system calculates discounts and updates the order total based on the applied coupon, enhancing the shopping experience.
### **Real-Time Order and Notification Management**
- **SignalR Integration**: Real-time notifications for order status updates and notifications. This ensures users and admins receive live updates on order progress and other critical events.
### **Comprehensive Cart and Checkout System**
- **Cart Management**: Full-featured cart system with add, update, and remove item functionality. Integrates with local storage to persist cart data between sessions.
- **Checkout Flow**: Guided checkout process with address, delivery, and payment steps, ensuring a smooth user experience from cart to order completion.
### **User Authentication and Route Protection**
- **User Authentication**: Secure login and registration with route protection to ensure that only authenticated users can access certain pages.
- **Role-Based Access Control**: Admins have access to specialized features and routes, protected by custom guards and directives.
### **Enhanced UI and UX**
- **Loading and Empty States**: Improved user experience with dynamic loading indicators and empty state components that provide helpful prompts and actions.
- **Responsive Design**: Utilizes TailwindCSS and Angular Material to create a responsive and visually appealing interface across all devices.
#### Technology Stack
- **Frontend**: Angular, Angular Material, TailwindCSS
- **Backend**: ASP.NET Core (for API integration)
- **Payment**: Stripe API
- **Real-Time Communication**: SignalR
- **State Management**: RxJS
- **Other Tools**: TypeScript, RxJS, Angular CLI
## Installation
### Prerequisites
- **Node.js** (v14 or higher) and **npm**
- **Angular CLI** (v12 or higher)
- **Git**
- **ASP.NET Core** (for backend API)
- **Stripe Account** (for payment integration)
### Environment Setup
1. **Clone the repository:**
```bash
git clone https://github.com/elvan/ecommerce-shop-app-frontend-angular.git
cd ecommerce-shop-app-frontend-angular
```
2. **Install dependencies:**
```bash
npm install
```
3. **Setup environment variables:**
Create an `.env` file in the root directory with the following contents:
```bash
STRIPE_PUBLIC_KEY=your_stripe_public_key
STRIPE_SECRET_KEY=your_stripe_secret_key
API_URL=http://localhost:5000/api
```
4. **Start the development server:**
```bash
ng serve
```
The application will be available at `http://localhost:4200`.
5. **Start the backend server:**
Follow the instructions in the backend repository to start the API server.
## Usage
1. **Admin Dashboard:**
- Navigate to `http://localhost:4200/admin` to access the admin dashboard. You must be logged in as an admin to access this section.
- Use the dashboard to manage products, update stock, and handle orders.
2. **Product Browsing and Cart Management:**
- Browse products on the shop page, add items to the cart, and proceed to checkout when ready.
- Apply coupon codes during checkout to receive discounts on your order.
3. **Order Tracking and Notifications:**
- After completing an order, use the order history page to track your orders and receive real-time updates via notifications.
4. **User Authentication:**
- Register or log in to manage your account, view order history, and save items to your cart.
This project is structured to provide a robust foundation for an e-commerce application, and can be extended further with additional features and customizations as needed.