🛒 E-Commerce Backend System
👤 User Features
🔐 Authentication – Register & Login using JWT
🛍 Browse Products – View all available products
🛒 Cart Management – Add / Remove items
📦 Place Order – Checkout directly from cart
📄 View Orders – Track order history
❌ Cancel Order – Allowed before shipping
🛠 Admin Features
📊 Manage Products – Add, update, delete products
📦 Manage Orders
Update order status:
PLACED → SHIPPED → DELIVERED
👥 User Management (optional)
🧾 Order Creation
ecommerce-backend/
│
├── src/main/java/ecommerce/ecommerce/
│
│ ├── EcommerceApplication.java
│
│ ├── config/
│ │ ├── SecurityConfig.java
│ │ └── SwaggerConfig.java
│
│ ├── security/
│ │ ├── JwtAuthenticationFilter.java
│ │ ├── JwtService.java
│ │ ├── CustomUserDetails.java
│ │ └── CustomUserDetailsService.java
│
│ ├── controller/
│ │ ├── AuthController.java
│ │ ├── UserController.java
│ │ ├── ProductController.java
│ │ ├── CategoryController.java
│ │ ├── CartController.java
│ │ └── OrderController.java
│
│ ├── dto/
│ │ ├── request/
│ │ │ ├── LoginRequest.java
│ │ │ ├── SignupRequest.java
│ │ │ ├── ProductRequest.java
│ │ │ └── OrderRequest.java
│ │ │
│ │ └── response/
│ │ ├── AuthResponse.java
│ │ ├── ProductResponse.java
│ │ └── OrderResponse.java
│
│ ├── entity/
│ │ ├── BaseEntity.java
│ │ ├── User.java
│ │ ├── Role.java
│ │ ├── Product.java
│ │ ├── Category.java
│ │ ├── Cart.java
│ │ ├── CartItem.java
│ │ ├── Order.java
│ │ └── OrderItem.java
│
│ ├── repository/
│ │ ├── UserRepository.java
│ │ ├── RoleRepository.java
│ │ ├── ProductRepository.java
│ │ ├── CategoryRepository.java
│ │ ├── CartRepository.java
│ │ ├── CartItemRepository.java
│ │ ├── OrderRepository.java
│ │ └── OrderItemRepository.java
│
│ ├── service/
│ │ ├── AuthService.java
│ │ ├── UserService.java
│ │ ├── ProductService.java
│ │ ├── CategoryService.java
│ │ ├── CartService.java
│ │ └── OrderService.java
│
│ ├── service/impl/
│ │ ├── AuthServiceImpl.java
│ │ ├── UserServiceImpl.java
│ │ ├── ProductServiceImpl.java
│ │ ├── CategoryServiceImpl.java
│ │ ├── CartServiceImpl.java
│ │ └── OrderServiceImpl.java
│
│ ├── mapper/
│ │ ├── UserMapper.java
│ │ ├── ProductMapper.java
│ │ └── OrderMapper.java
│
│ ├── exception/
│ │ ├── GlobalExceptionHandler.java
│ │ ├── ResourceNotFoundException.java
│ │ └── CustomException.java
│
│ ├── enums/
│ │ ├── RoleType.java
│ │ └── OrderStatus.java
│
│ └── util/
│ └── AppConstants.java
│
├── src/main/resources/
│ ├── application.yml
│
├── pom.xml
└── README.md
🔐 Auth APIs
POST /api/auth/register
POST /api/auth/login
🛍 Product APIs
GET /api/products
POST /api/products (ADMIN)
PUT /api/products/{id} (ADMIN)
DELETE /api/products/{id} (ADMIN)
🛒 Cart APIs
POST /api/cart/add?productId=1&qty=2
GET /api/cart
DELETE /api/cart/remove/{id}
📦 Order APIs
POST /api/orders/checkout
GET /api/orders/my
PUT /api/orders/{id}/status?status=SHIPPED (ADMIN)
PUT /api/orders/{id}/cancel
🛍 User Flow
🛠 Admin Flow
1️⃣ Clone Repository
git clone https://github.com/yourusername/ecommerce-backend.git
2️⃣ Configure Database
spring.datasource.url=jdbc:postgresql://localhost:5432/ecommerce
spring.datasource.username=yourusername
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
3️⃣ Run Application
mvn spring-boot:run
4️⃣ Access APIs
http://localhost:8080/api